Ký tự (Character literal) trong Java | Laptrinhcanban.com

Ký tự (Character literal) trong Java

Cùng tìm hiểu về ký tự trong Java. Bạn sẽ học được khái niệm ký tự trong Java là gì, cách biểu diễn và in ký tự trong Java, cũng như lưu ý khi xử lý ký tự tiếng Việt có dấu trong Java sau bài học này.

Ký tự trong Java là gì

Ký tự hay còn gọi là Character literal trong Java là một giá trị không đổi được biểu diễn bởi mã UTF-16 trong phạm vi từ 0 đến 65535. Ký tự có thể là một chữ cái (a, b, c, …, x, y, z) , một chữ số (0, 1, 2, …, 9), một dấu (! + - = . ,&) hay bất kỳ một ký tự nào nằm trong phạm vi mã UTF-16 ở trên.

Ký tự trong Java được đại diện bởi kiểu ký tự char. Bạn có thể tham khảo chi tiết về kiểu ký tự char tại bài viết: kiểu ký tự char trong Java

Để biểu diễn ký tự trong Java, chúng ta đặt ký tự đó vào giữa hai dấu nháy đơn '' như sau:

'a'
'D'
'1'
'2'
','
'&'
' '

Cần lưu ý là chúng ta không thể chỉ định bên trong cặp dấu nháy đơn một giá trị không phải là một ký tự, ví dụ như một ký tự trống '' hoặc là một chuỗi ký tự, vì lỗi sẽ xảy ra.

'ab'
'ABC'
''

>>>Main.java:12: error: unclosed character literal

Lại nữa, nếu một số được đặt trong cặp dấu nháy đơn '' thì số đó sẽ được coi là ký tự trong Java chứ không phải là số. Khi đó chúng ta không thể tính toán với chữ số này tương tự với số được. Hãy nhớ hai cách viết dưới đây biểu diễn hai kiểu dữ liệu khác nhau trong Java.

1
2
'1'
'2'

Lại nữa, nếu chữ, chữ số hoặc là dấu có từ 2 ký tự trở lên, thì chúng không còn là ký tự nữa mà sẽ trở thành chuỗi ký tự (string literal) trong Java. Khi đó, thay vì cặp dấu nháy đơn thì chúng ta sẽ sử dụng cặp dấu nháy kép "" để biểu diễn chuỗi ký tự, ví dụ như "Việt Nam" hay "I love you!" chẳng hạn.

Cách in ký tự trong Java ra màn hình

Để in ký tự trong Java ra màn hình, chúng ta sử dụng phương thức System.out.println với cú pháp như sau:

System.out.println(‘a’);

Ví dụ cụ thể, chúng ta in ra màn hình các ký tự như sau:

class Main{
public static void main(String[] args){
System.out.println('a');
System.out.println('A');
System.out.println('1');
System.out.println('/');
System.out.println('!');
}
}

Kết quả:

a
A
1
/
!

Biểu diễn ký tự trong Java thông qua mã ký tự

Trong bài Mã ký tự trong Java là gì chúng ta đã biết mã ký tự mặc định được sử dụng trong Java là UTF-16. Và các ký tự trong Java cũng được biểu diễn bằng mã ký tự này, thông qua các số trong phạm vi từ 0 đến 65535.

Ví dụ:

Mã ký tự của ‘a’ là 0x0061
Mã ký tự của ‘A’ là 0x3042

Ở trên, tièn tố 0x có ý nghĩa biểu thị một số dưới dạng thập lục phân, là cách biểu diễn số mặc định trong UTF-16.

Để biểu diễn một ký tự trong Java, ngoài cách viết trực tiếp giá trị của ký tự vào giữa cặp dấu nháy đơn, chúng ta cũng có thể sử dụng các mã ký tự trong bảng mã UTF-16 đại diện cho ký tự đó.

Tuy nhiên cần lưu ý nếu chúng ta viết trực tiếp mã ký tự khi in, thì giá trị trả về không phải là ký tự đó, mà chính là giá trị thập phân của mã ký tự.

Ví dụ:

System.out.println('a');    // a
System.out.println(0x0061); // 97

Thay vào đó, chúng ta cần sử dụng tới ký tự đặc biệt \u có dạng '\uhhhh', với hhhh là mã ký tự, để biểu diễn ký tự mà mã đó đại diện.

Ví dụ

class Main{
public static void main(String[] args){
System.out.println('a'); //a
System.out.println(0x0061); // 97
System.out.println('\u0061'); //a
}
}

Xử lý ký tự tiếng Việt có dấu trong Java

Trong các ngôn ngữ lập trình dùng mã ASSCII để biểu diễn ký tự như C hay C++, một ký tự được biểu diễn bởi 1 mã ký tự, do đó các ký tự được biểu diễn bởi 2 mã ký tự như tiếng Việt có dấu, hay hán tự, kanji tiếng Nhật sẽ không được coi là ký tự.

Tuy nhiên trong Java lại sử dụng UTF-16 để biểu diễn ký tự. Do vậy trong Java, các ký tự tiếng Việt có dấu (ví dụ như ă, ú,đ…) được biểu diễn bởi nhiều hơn 1 mã ký tự đều được coi là ký tự trong Java, và chúng ta cũng sử dụng cặp dấu nháy đơn để biểu diễn chúng.

Ví dụ cụ thể

class Main{
public static void main(String[] args){
System.out.println('á');
System.out.println('ớ');
System.out.println('đ');
System.out.println('と');
System.out.println('日');
}
}

Kết quả:

á

đ


Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về ký tự trong Java rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về Java trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.