Что такое char в java
Перейти к содержимому

Что такое char в java

  • автор:

Тип данных char

Символы описываются в языке Java char типом. Символы преобразуются по таблице кодировки UTF-16. По большому счёту это все буквы, числа и специальные символы существующие на нашей планете.

Размер в байтах — 2 байта

Возможные значения (от..до) — 0..65,535

Значение по умолчанию — ‘\u0000’

Пример объявление символьных типов:

char c1 = 'a';

Тип char является псевдоцелочисленным типом, поэтому значения этого типа можно задавать в виде числа — кода символа из таблицы кодировки UTF-16. Каждому символу соответствует определённое число из таблицы и Java при виде этого числа в рамках типа char выводит его на экран как символ.

Например, при выполнении этого кода

char c2 = 97; System.out.println(c2);

на консоль выведется

Презентацию с видео можно скачать на Patreon .

  • Пробелы
  • Идентификаторы
  • Правила именования переменных
  • Комментарии
  • Разделители
  • Ключевые слова
  • Примитивные типы данных
  • Типы byte, short, int, long
  • Числа с плавающей точкой
  • Тип данных boolean
  • Литералы
  • Методы
  • Переменные
  • Прямой код и дополнительный код
  • Преобразование и приведение примитивных типов
  • Ввод с клавиатуры
  • Задания

Что такое char в Java?

char представляет собой 16-битный Unicode символ. Этот примитивный тип данных используется для хранения отдельных символов, таких как буквы, цифры, знаки препинания и специальные символы.

  • char представляет отдельный символ и записывается в одинарных кавычках.
char myChar = 'A';
  • char в Java использует кодировку Unicode, что позволяет представлять символы из различных языков и обеспечивает поддержку разнообразных символов.
char unicodeChar = '\u03A9'; // Греческая буква "Омега"
  • Для представления специальных символов, таких как новая строка или символ табуляции, могут использоваться экранированные последовательности.
char tabChar = '\t'; // Символ табуляции
  • char может быть использован как числовой тип, например, для хранения кода символа в виде целого числа.
char myDigit = '5'; int digitValue = myDigit - '0'; // Преобразование символа в число

Переменные string и char в Java

В этом уроке мы рассмотрим на примерах строковые переменные string и char в Java. Разберем разницу между ними и закрепим новые знания в новом созданном проекте.

переменная string и char java

Помимо хранения числовых значений, переменные могут содержать текст. Вы можете хранить один или множество символов. Для хранения только одного символа используется переменная char . Чтоб хранить более одного символа, нужен тип переменной string . Переменную string в Java используют чаще, чем char. Для этого начнем новый проект, нажав File > New Project в строке меню в верхней части NetBeans. Когда появится диалоговое окно New Project, убедитесь, что выбраны Java with Ant и Java Application:

Нажмите Next и введите StringVars в качестве имени проекта. Убедитесь, что в поле Create Main Class стоит галочка. Затем там же удалите после после точки StringVars и введите вместо этого StringVariables, как показано на следующем рисунке: Таким образом, имя проекта — StringVars, а имя класса — StringVariables. Нажмите кнопку Finish, и ваше окно с кодом будет выглядеть так (все комментарии по умолчанию удалены). Обратите внимание, что имя пакета — все строчные буквы (stringvars), но именем проекта было StringVars. Чтобы установить в Java переменную string, вы вводите слово String, а затем имя для вашей переменной. Обратите внимание, что в Java переменная String пишется с заглавной «S». И естественно точка с запятой завершает строку:

String first_name; 

Присвойте значение новой строковой переменной, введя знак равенства. После знака равенства текст, который вы хотите сохранить, должен находится между двумя двойными кавычками:

first_name = "Вася"; 

Если хотите, вы можете записать все это в одной строке:

String first_name = "Вася"; 

Установите вторую строковую переменную для хранения фамилии:

String family_name = "Пупкин"; 

Чтобы напечатать оба имени, добавьте следующий println ():

System.out.println(first_name + " " + family_name); 

System.out.println (first_name + » » + family_name); В круглых скобках println мы имеем: first_name + » » + family_name Мы говорим Java о том, что хотим распечатать все, что находится в переменной с именем first_name. Затем у нас есть символ плюс, за которым следует пробел. В двойных кавычках находится пробел. Java распознает это так, что мы хотим распечатать символ пробела. После пробела у нас есть еще один символ плюс, за которым следует переменная family_name. Ваше окно с кодом должно выглядеть так: Запустите свою программу, и вы должны увидеть это в окне вывода:

Разница между переменными string и char в Java

Если вы сохраните только один символ, тогда вам нужна переменная char (беззнаковое целое число, представляющее собой символ UTF-16 (может быть буквой или цифрой)). Чтобы сохранить символ, следует использовать одинарные кавычки вместо двойных. Вот наша программа, но на этот раз с переменной char: Если вы попытаетесь заключить переменную char в двойные кавычки, NetBeans подчеркнет код красной волнистой линией , сообщая об ошибке «несовместимого типа». В переменную String также можно заключить только один символ. Но тогда потребуются двойные кавычки:

String name = "В"; 

Это неправильно: String name = ‘В‘; Существует еще много вариантов string, и позже вы их встретите. А пока давайте продолжим и научимся получать информацию от пользователя.

Типы данных char и String: примеры применения — введение в Java 004 #

Таблица символов

Если в программе нужны символы, то для этого мы пользуемся типом данных char. Например:

public class HelloChar   public static void main(String[] args)    char zahl = 100;  // Сотый по счёту символ в таблице  char octal = '\u039A';  // Вызов определённого символа кодом  char zeichen = 'A';  // Буква A  char tabulator = '\t'; // В русском языке клавиша называется "Таб"  // Табулятор  char phi = '\u03A6';  // Греческая буквая Фита - PHI   System.out.println(zahl);  System.out.println(octal);  System.out.println(zeichen);  System.out.print(tabulator);  System.out.println(phi);  > > 

Объект базового (примитивного) типа char является 16-битным символом Unicode.

Мы можем вывести любое сообщение или любой символ. однако достаточно сложно вывести на экран кавычки, ведь в них мы и держим значения наших переменных. Для таких случаев мы используем экранирование. С помощью обратной косой черты(обратный слеш) мы экранируем символ или используем её для дополнительных параметров.

\b Backspace (Курсор двигается на одно место влево) \n Newline (Новая строчка) \f Newpage (Новая страница) \r Carriage return (Курсор становится на первое место в строчке, возврат каретки) \t Горизонтальный табулятор \" Двойная кавычка \' Одинарная кавычка \\ Backslash(вызов обратного слэша) \___ Символы с октальным значением от 000 до 377, например \304 соответствует символу Ä \u___ Вызов символа уникода (Unicode-16). Где например \u00C4 соответствует Ä 

Таблица символов Windows (charmap) вызывает и показывает именно те символы, которые можно вызвать в Java.

String #

Мы можем хранить в программе и набор символов: пароль, фамилию, звание, название улицы или просто набор символов. Для хранения таких данных можно использовать String. Пример использования:

public class HelloString   public static void main(String[] args)   String firstname = "Andrej";  String secondname = "Podlubnyj";  char copyright = '\u00A9';  int old = 18;  System.out.println(firstname + " " + secondname + " " + old);  String student = firstname + " " + secondname + " " + copyright;  System.out.println(student);  > > 

Один символ можно записать как “маленьким” стрингом, так и через символ при помощи типа данных char. Цепочку символов, больше одного, мы храним в типе данных String. Каждый элемент этой цепочки символов можно отобразить при помощи char. Это очень важно понять и запомнить.

Строковый набор символов класса String может немного больше, чем просто хранить строчку в переменной. Например, мы можем вычислить количество символов или длину String, используя один из методов, которые есть в Java. Это примерно такие же методы, как те, что мы использовали в предыдущих уроках, чтобы возводить числа в степень или выводить результаты на экран:

 int dlina; dlina = student.length(); System.out.println(dlina); 

Для переменных типа String ява заготовила много дополнительных методов, которые делают нашу жизнь проще. Например, метод substring, который вырезает из одной цепочки символов другую.

public class WhatCanYouDoString   public static void main(String[] args)   String name = "AndrejPodlubnyj";  int dlina = name.length();  System.out.println(name);  System.out.println(dlina);   // вырезать символы с 6-го по 15-ый  String firstName = name.substring(6,15);   dlina = firstName.length();  System.out.println(firstName);  System.out.println(dlina);  > > 

Если мы пишем приложение для веб-сайта с “user generated content”, то мы можем столкнуться с тем, что часть контента пишется заглавными буквами. В Java есть методы, которые приводят цепочку символов алфавита к прописным (заглавным) или к строчным (маленьким) буквам. Давайте рассмотрим пример:

public class UppercaseAndLowercase   public static void main(String[] args)   String articleTitle = "london is the capital";  articleTitle = articleTitle.substring(0,1).toUpperCase() + articleTitle.substring(1);  System.out.println(articleTitle);   articleTitle = articleTitle.toUpperCase();  System.out.println(articleTitle);   System.out.println(articleTitle.toLowerCase());  > > 

С помощью метода toUpperCase() мы делаем буквы прописными, с помощью метода toLowerCase() мы приводим значение строки к строчным буквам.

Мы обязательно вернёмся к этому и другим возможностям класса. Пока надо только запомнить, что, если мы хотим создать записную книжку, то фамилию и имя абонента мы скорее всего будем хранить с помощью типа данных String.

Явные и неявные преобразования #

Значения, передаваемые переменным, можно привести в тот тип данных, которые переменная может принять. Вручную или автоматически, или явно и неявно.

преобразование типов данных

Расширение типа (widening Casting), которое можно проследить на схеме с помощью стрелок, происходит автоматически. Это преобразование меньшего типа данных в типа большего размера: byte -> short -> char -> int -> long -> float -> double.

Сужение типа (narrowing Casting) — преобразование типа данных большего размера в тип данных меньшего размера — делается вручную: double -> float -> long -> int -> char -> short -> byte

public class MyClass   public static void main(String[] args)   int myInt = 9;  double myDouble = myInt; // Automatic casting: int to double   System.out.println(myInt); // Outputs 9  System.out.println(myDouble); // Outputs 9.0  > > 
public class MyClass   public static void main(String[] args)   double myDouble = 9.78;  int myInt = (int) myDouble; // Manual casting: double to int   System.out.println(myDouble); // Outputs 9.78  System.out.println(myInt); // Outputs 9  > > 

Повышение типа на примере

public class Main   public static void main(String[] args)   byte b = 42;  char c = 'a';  short s = 1024;  int i = 50_000;  float f = 5.67f;  double d = .1234;  double result = (f * b) + (i / c) - (d * s);  System.out.println((f * b) + " + " + (i / c) + " - " + (d * s));  System.out.println("result = " + result);  > > 

Допустим, у нас имеется старая база данных, где все данные записаны в строковом виде. Например просто текстовый файл столбиком. Java даёт нам возможность “спарсить” целочисленные данные из строк.

String number = "10"; int result = Integer.parseInt(number); System.out.println(result); 

Дополнительные материалы #

  1. По ссылке можно посмотреть все методы, которые поддерживает тип данных String.

Домашнее задание #

  1. Найти в интернете таблицы для типа данных char. Проверить, что они действительно соответствуют тому, что выводит Java на экран. Найти “смешные” символы, символ стандартного смайлика, найти символ телефона, параграфа, копирайта(C), торговой марки(тм), рубля, евро, доллара, знаков зодиака, шахмат, червы.
  2. Вбить в поисковую строку Windows “charmap”.
  3. Найдите самостоятельно статьи на тему:
    • Что такое юникод?
    • Что такое ASCII?
    • Что такое UTF?
  4. Что будет, если “сложить” переменную String с самой собой? Можно ли умножить её на саму себя? Почему?
  5. Вывести на экран сообщение в кавычках. Например собственное имя + “профессия”.
  6. Вывести на экран построчно анкетные данные: Имя, Фамилия, Адрес, Улица и тд и тп. Пример вывода одной строчки:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *