План
уроку
1.Тип даних char (class Chars _1).
2.Представлення змінних char як беззнакових цілих чисел, додавання змінних типу char (class Chars _2).
3.ASCII-коди.
Символи пробіла (class Chars _3).
4.Перетворення типів даних (class Chars _4).
Для збереження символів у java використовують тип даних char. Для їх представлення використовується таблиця символів Юнікод (Unicode - цифрове представлення символів усіх писемностей світу та спеціальних символів). Для збереження цих символів потрібно 16 бітів, тому тип char є 16-розрядним.
Діапазон допустимих значень цього типу складає від 0 до 65536. Від'ємних значень типу char не існує.
Приклад використання змінної типу char.
class CharDemo {public static void main (String args[ ]) {
char ch1, ch2;
ch1=88; //код символу Х
ch2='У';System.out.print("ch1 і ch2: ") ;System.out.println (ch1+" "+ ch2) ;
}
}
Output:
chl і ch2: ХУ
Незважаючи на те, що тип char призначений для зберігання символів в Юнікоді, ним можна користуватися і як цілочисельним типом для виконання арифметичних операцій. Наприклад, він допускає додавання символів або збільшення значення символьної змінної. Таке застосування типу char демонструється в наступному прикладі програми:
Приклад
//символьні змінні ведуть себе як цілочисельні значення
class CharDemo2 {
public static void main (String args[ ]) {
char ch1;
ch1='x';
}
public static void main (String args[ ]) {
char ch1;
ch1='x';
System.out.println("ch1 містить " + ch1) ;
ch1++; //збільшити на одиницю chl
System.out.println("chl тепер містить " + chl) ;
}}
Output:
chl містить Х
ch2 тепер містить У
Програми
аудиторні:
public class Chars_1{
public static void main(String args[]) {
// представлення даних типу char різними способами
char x = ‘A’;
char y = ‘\u0041’; // із використанням шістнадцяткової системи
char z = ‘\101’; // із використанням вісімкової системи
System.out.println(x); // виведення символу A
System.out.println(y); // виведення символу A
System.out.println(z); // виведення символу A
}
}
public class Chars_2{
public static void main(String args[]) {
// представлення даних типу char як беззнакових цілих чисел, додавання char
char x = ‘A’;
int y = x;
System.out.println(x); // виведення символу A
System.out.println(y); // виведення числа 65
char z = (char)(x + 1);
System.out.println(z); // виведення символу B
}
}
public class Chars_3{
public static void main(String args[]) {
// ASCII-коди, символи пробілу
char x = ‘\u0039’;
char y = ‘\u0020’;
char z = ‘\u0044’;
char a = ‘\u0009’;
char b = ‘\u0064’;
char c = ‘\n’;
char d = ‘\u003f’;
char e = ‘\r’;
char f = ‘\u007d’;
System.out.println(x); // виведення символу 9
System.out.println(y); // виведення пробілу
System.out.println(z); // виведення символу D
System.out.println(a); // виведення символу табуляції (пробілу)
System.out.println(b); // виведення символу d
System.out.print(c); // виведення символу кінця рядка (пробілу)
System.out.println(d); // виведення символу ?
System.out.print(e); // виведення символу повертання каретки
//(пробілу)
System.out.println(f); // виведення символу }
}
}
public class Chars_4{
public static void main(String args[]) {
// перетворення типів даних
byte a = 70;
// char x = a; // не компілюється, знаковий формат не
//переводиться до беззнакового
char x = (char)a;
System.out.println(x); // виведення символу F
}
}
public static void main(String args[]) {
// представлення даних типу char різними способами
char x = ‘A’;
char y = ‘\u0041’; // із використанням шістнадцяткової системи
char z = ‘\101’; // із використанням вісімкової системи
System.out.println(x); // виведення символу A
System.out.println(y); // виведення символу A
System.out.println(z); // виведення символу A
}
}
public class Chars_2{
public static void main(String args[]) {
// представлення даних типу char як беззнакових цілих чисел, додавання char
char x = ‘A’;
int y = x;
System.out.println(x); // виведення символу A
System.out.println(y); // виведення числа 65
char z = (char)(x + 1);
System.out.println(z); // виведення символу B
}
}
public class Chars_3{
public static void main(String args[]) {
// ASCII-коди, символи пробілу
char x = ‘\u0039’;
char y = ‘\u0020’;
char z = ‘\u0044’;
char a = ‘\u0009’;
char b = ‘\u0064’;
char c = ‘\n’;
char d = ‘\u003f’;
char e = ‘\r’;
char f = ‘\u007d’;
System.out.println(x); // виведення символу 9
System.out.println(y); // виведення пробілу
System.out.println(z); // виведення символу D
System.out.println(a); // виведення символу табуляції (пробілу)
System.out.println(b); // виведення символу d
System.out.print(c); // виведення символу кінця рядка (пробілу)
System.out.println(d); // виведення символу ?
System.out.print(e); // виведення символу повертання каретки
//(пробілу)
System.out.println(f); // виведення символу }
}
}
public class Chars_4{
public static void main(String args[]) {
// перетворення типів даних
byte a = 70;
// char x = a; // не компілюється, знаковий формат не
//переводиться до беззнакового
char x = (char)a;
System.out.println(x); // виведення символу F
}
}
Література
для класної роботи:
[Шилдт], с. 85 (п.1),
[metod книга], ст.14 (табл.2) (п.3).
Тести
для класної роботи:
[task-mughal] – 2.7
(п.1).
Література
для домашньої роботи:
[Шилдт], с. 71, 80…81,
[Хорстманн, т.1], ст.64…66,
[Вязовик], гл.3, ст.13…14,
гл.4, с.11…12,
гл.7, ст.5,
Тестові завдання для домашньої роботи:
[Sangera] – ch.2: 3, 5,
[Heller] – ch.1: 18
[Вязовик]
– лек. 3: № 3.1.