Kiểu dữ liệu char trong java

Các bác cho em hỏi tại sao lại so sánh trực tiếp được giữa kiểu int và kiểu char ạ. VD: for(int i=‘A’;i<=‘Z’;i++){…}

vì mỗi kí tự char tương ứng với mỗi số int trong bộ mã ASCII. http://www.asciitable.com/

3 Likes

Khi so sánh hoặc tính toán, biến kiểu char được ép kiểu ngầm định thành int. Khi được gán cho biến char, int được ép kiểu ngầm định thành char

int a = 'a' + 1;
char b = 'a' + 1;

System.out.println(a);//98
System.out.println(b);//b
System.out.println('a' + 1);//98
System.out.println('a' + 'b');//195

5 Likes

JAVA nói riêng và các ngôn ngữ lập trình nói chung đa số đều có kiểu dữ liệu char. 1 giá trị char bản chất của nó là số thứ tự của ký tự đó trong 1 bảng mã (UTF-8, ASCII). Do đó nó được xem như là 1 số.

Ví dụ chữ cái ‘A’ trong bảng mã có số thứ tự là 65. Khi cộng cho 1 ta được số 66, chính là số thứ tự của chữ cái ‘B’ trong bảng mã

public static void main(String[] args) {
	char a = 'A';
	a++;
	System.out.println(a + ""); // convert char to String
}

output : ‘B’

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?