The character data type char

32
The character data type char

description

The character data type char. Character type char. The char data type : . is a built-in (primitive) data type of Java is used to represent alpha-numerical information (characters) inside the computer - PowerPoint PPT Presentation

Transcript of The character data type char

Page 1: The  character  data type char

The character data type char

Page 2: The  character  data type char

Character type char

• The char data type:

• is a built-in (primitive) data type of Java

• is used to represent alpha-numerical information (characters) inside the computer

• uses the Unicode to encode characters from many different kinds of languages in the world

• uses 2 bytes of memory to store the Unicode value

• The Unicode includes the ASCII code which is used to encode English characters

Page 3: The  character  data type char

Character type char (cont.)

• Unicode:

• Official website for Unicode: click here

• Unicode provides a unique number for every character

Example:

• The number 65 of Unicode represents the (English) character A

• The number 35 of Unicode represents the character #

• The number 948 of Unicode represents the (Greek) character δ

• The number 24373 of Unicode represents the (Chinese) character 張

Page 4: The  character  data type char

Character type char (cont.)

• ASCII code:

• The value 0 --- 127 of the Unicode is called the ASCII code

• The American Standard Code for Information Interchange (ASCII) code was designed to represent characters in the English alphabet

Page 5: The  character  data type char

Character type char (cont.)

• ASCII code: (with letters and number highlighted)

0 NUL 1 SOH 2 STX 3 ETX 4 EOT 5 ENQ 6 ACK 7 BEL 8 BS 9 HT 10 NL 11 VT 12 NP 13 CR 14 SO 15 SI 16 DLE 17 DC1 18 DC2 19 DC3 20 DC4 21 NAK 22 SYN 23 ETB 24 CAN 25 EM 26 SUB 27 ESC 28 FS 29 GS 30 RS 31 US 32 SP 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 / 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ? 64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 DEL

Page 6: The  character  data type char

Character type char (cont.)

• Here is an ASCII code table in hexadecimal, decimal and binary numbers

Page 7: The  character  data type char

Character literals

• We write numerical literals as follows:

123 3.1415 (And so on)

Page 8: The  character  data type char

Character literals (cont.)

• We cannot write character literals as follows:

because:

Aa(And so on)

• They can be confused with identifiers !!! (E.g., names of variables)

Page 9: The  character  data type char

Character literals (cont.)

• Character literals:

• A character literal is written between quotes '...'

• Examples:

• 'A' is the character literal A (ASCII code value 65)

• 'a' is the character literal a (ASCII code value 97)

• '1' is the character literal 1 (ASCII code value 49)

Page 10: The  character  data type char

Defining character typed variables

• Syntax to define an character typed variable:

Notes:

char NameOfVariable ;

• The keyword char announces the variable definition clause

• The NameOfVariable is an identifier which is the name of the variable.

• The variable definition clause is must be ended with a semi-colon ";"

• A char typed variable can store the Unicode of one character

Page 11: The  character  data type char

Defining character typed variables (cont.)

• Example:

public class Char01 { public static void main(String[] args) { char a; a = 'b'; // a = ASCII code of 'b' (98) System.out.println(a); // Print a using ASCII code } }

Page 12: The  character  data type char

Defining character typed variables (cont.)

• Example Program: (Demo above code) – Prog file:

http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/05/Progs/Char01.java

• How to run the program:            

• Right click on link and save in a scratch directory

• To compile:   javac Char01.java

• To run:          java Char01

Page 13: The  character  data type char

Operations on the char data type

• No arithmetic operations:

The only available operations are ++ and --.

• We do not add, subtract, multiply or divide one character with another character...

• There are no arithmetic operations defined on the char data type

Page 14: The  character  data type char

Operations on the char data type (cont.)

• The ++ and -- operations applied on char typed variables:

• The ++ operation applied on a char typed variable will increment the (Unicode) value

The variable will contain the (Unicode) value of the next character

• The -- operation applied on a char typed variable will increment the (Unicode) value

The variable will contain the (Unicode) value of the previous character

Page 15: The  character  data type char

Operations on the char data type (cont.)

• Example:

public class Char02 { public static void main(String[] args) { char a; a = 'b'; System.out.println(a); // Prints b

a++; // "Next" character System.out.println(a); // Prints c } }

Page 16: The  character  data type char

Operations on the char data type (cont.)

• Explanation:

• The variable a first contains the Unicode for the character 'b' which is equal to 98:

• The statement a++; increments the variable a to the new value 99 which is the code for the character 'c'

• That's why when variable a is printed, the letter 'c' is printed.

..... (portion of the ASCII code table) .... 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o .....

Page 17: The  character  data type char

Operations on the char data type (cont.)

• Example Program: (Demo above code) – Prog file:

http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/05/Progs/Char02.java

• How to run the program:            

• Right click on link and save in a scratch directory

• To compile:   javac Char02.java

• To run:          java Char02

Page 18: The  character  data type char

Exercise

• What will the following program print:

public class Char02a { public static void main(String[] args) { char a; a = '%'; System.out.println(a); // Prints %

a++; // "Next" character System.out.println(a); // What will this statement print ? } }

Page 19: The  character  data type char

Exercise (cont.)

• Hint: use the ASCII table

Page 20: The  character  data type char

Exercise (cont.)

• Answer: &

Page 21: The  character  data type char

Converting a number type into char

• Java allows you to convert a numerically typed (integer, short, etc) into the char type.

Page 22: The  character  data type char

Converting a number type into char (cont.)

• Example:

public class Char03 { public static void main(String[] args) { int x; char a; x = 98; // 98 is the code for 'b' // a = x; // This is not allowed without casting a = (char) x; // Convert int to char System.out.println(a); // Prints b } }

Page 23: The  character  data type char

Converting a number type into char (cont.)

• Explanation:

• The variable x is assigned the value 98 (which is the Unicode for the character 'b'):

(The bit pattern 00000000 00000000 00000000 01100010 encodes 98 using the binary number system

Page 24: The  character  data type char

Converting a number type into char (cont.)

• The statement a = (char) x; will achieve the following:

This statement copies the value from an int typed variable into a char typed variable.

Page 25: The  character  data type char

Converting a number type into char (cont.)

• Effect:

• That's why System.out.println(a); will print the letter 'b'.

• The (same) value will now be interpreted using the Unicode code

(E.g.: The pattern 00000000 01100010 is equal to 98 and according to the Unicode scheme, it is the code for the letter 'b')

Page 26: The  character  data type char

Converting a number type into char (cont.)

• Example Program: (Demo above code) – Prog file:

http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/05/Progs/Char03.java

• How to run the program:            

• Right click on link and save in a scratch directory

• To compile:   javac Char03.java

• To run:          java Char03

Page 27: The  character  data type char

Converting a char typed value into an integer

• We can also do the reverse:

• Convert a char typed value into an integer

Page 28: The  character  data type char

Converting a char typed value into an integer (cont.)

• Example:

public class Char04 { public static void main(String[] args) { int x; char a; a = '%'; // ASCII code of '%' = 37 x = a; // Copy 37 into x // We don't need to use (int) // is is "safe" (int is bigger than char) System.out.println(x); // Prints 37 } }

Page 29: The  character  data type char

Converting a char typed value into an integer (cont.)

• Explanation:

• The variable a is assigned the Unicode value for the character % (which is the number 37):

(The bit pattern 00000000 00100101 encodes the number 37 and it is the Unicode for the character '%'

Page 30: The  character  data type char

Converting a char typed value into an integer (cont.)

• The statement x = a; will achieve the following:

This statement copies the value from a char typed variable into a int typed variable.

Page 31: The  character  data type char

Converting a char typed value into an integer (cont.)

• Effect:

• That's why System.out.println(x); will print the number 37.

• The (same) value will now be interpreted using the binary number system

(E.g.: The pattern 00000000 00000000 00000000 00100101 is equal to 37

Page 32: The  character  data type char

Converting a char typed value into an integer (cont.)

• Example Program: (Demo above code) – Prog file:

http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/05/Progs/Char04.java

• How to run the program:            

• Right click on link and save in a scratch directory

• To compile:   javac Char04.java

• To run:          java Char04