Bỏ qua để đến nội dung

Kiểu dữ liệu ký tự (char)

char lưu trữ một ký tự Unicode 16-bit duy nhất, dùng dấu nháy đơn ('):

char grade = 'A';
char digit = '7';
char symbol = '$';

⚠️ Dấu nháy đơn chỉ chứa đúng một ký tự - char letter = 'AB'; là lỗi biên dịch. Chuỗi nhiều ký tự phải dùng String với dấu nháy kép.

Bên dưới, char được lưu như một số nguyên không dấu 16-bit (mã Unicode của ký tự đó). Vì vậy có thể thực hiện phép toán số học trên char:

char letter = 'A';
int code = letter; // Ép kiểu ngầm định: 65 (mã Unicode của 'A')
char next = (char) (letter + 1); // Cần ép kiểu tường minh về char: 'B'
System.out.println(code); // 65
System.out.println(next); // B

Lưu ý: char + int cho kết quả kiểu int, nên phải ép kiểu (char) tường minh nếu muốn kết quả vẫn là char.

char newline = '\n'; // Xuống dòng
char tab = '\t'; // Tab
char quote = '\''; // Dấu nháy đơn
char backslash = '\\'; // Dấu gạch chéo ngược
char unicodeHeart = ''; // Ký tự Unicode theo mã \uXXXX
char c = 'A'; // char - một ký tự, dấu nháy đơn
String s = "A"; // String - một chuỗi (dù chỉ có 1 ký tự), dấu nháy kép
// char wrong = "A"; // LỖI BIÊN DỊCH! Không thể gán String cho char
  • char lưu một ký tự Unicode 16-bit, dùng dấu nháy đơn
  • char thực chất là một số nguyên - có thể tính toán và cần ép kiểu (char) khi muốn giữ kết quả là char
  • Không nhầm lẫn char (nháy đơn, một ký tự) với String (nháy kép, chuỗi ký tự)