Có sự khác biệt giữa dấu nháy đơn và dấu ngoặc kép trong Java không?


101

Có sự khác biệt giữa dấu nháy đơn và dấu ngoặc kép trong Java không?

Câu trả lời:


146

Sử dụng dấu ngoặc kép cho chữ chars, dấu ngoặc kép cho chữ Strings, như sau:

char c = 'a';
String s = "hello";

Chúng không thể được sử dụng theo bất kỳ cách nào khác (chẳng hạn như trong Python).


10
Và, tất nhiên, hành vi này được mượn từ C (có thể có nó ở một nơi khác, tôi cho là vậy).
JesperE

Đối với tôi, dấu nháy đơn theo nghĩa đen tự động được chuyển sang inttrong các ngữ cảnh như vậy. Vì vậy, nó không cần phải được char. Deservin 'một số phản đối ... đơn giản.
Hydroper

36

Một ký tự là một ký tự UTF-16, là một chữ cái, một chữ số, một dấu chấm câu, một tab, một khoảng trắng hoặc một cái gì đó tương tự.

Một ký tự char là một ký tự đơn lẻ được đặt trong các dấu ngoặc kép như thế này

char myCharacter = 'g'; 

hoặc một chuỗi thoát, hoặc thậm chí một chuỗi thoát unicode:

char a = '\t';    // Escape sequence: tab
char b = '\177'   // Escape sequence, octal.
char c = '\u03a9' // Unicode escape sequence. 

Cần lưu ý rằng các chuỗi thoát Unicode được xử lý rất sớm trong quá trình biên dịch và do đó việc sử dụng '\ u00A' sẽ dẫn đến lỗi trình biên dịch. Đối với các ký hiệu đặc biệt, tốt hơn nên sử dụng các chuỗi thoát thay thế, tức là '\ n' thay vì '\ u00A'.

Dấu ngoặc kép là cho String, bạn phải sử dụng "chuỗi thoát dấu ngoặc kép " ( \") bên trong các chuỗi mà nếu không nó sẽ kết thúc chuỗi.
Ví dụ:

System.out.println("And then Jim said, \"Who's at the door?\"");

Không cần thiết phải thoát khỏi dấu ngoặc kép bên trong dấu ngoặc kép.
Dòng sau là hợp pháp trong Java:

char doublequote = '"';

12

Hãy xem xét các dòng mã này (Java):

System.out.println("H"+"A"); //HA
System.out.println('H'+'a'); //169

1) Dòng đầu tiên là nối của HAđiều đó sẽ dẫn đến HA(Chuỗi ký tự)

2) Thứ hai, chúng tôi đang thêm các giá trị của hai ký tự theo Bảng ASCII H= 72 và a= 97, điều đó có nghĩa là chúng tôi đang thêm 72+97nó giống như vậy ('H'+'a').

3) Hãy xem xét một trường hợp khác mà chúng ta sẽ có:

System.out.println("A"+'N');//AN

Trong trường hợp này, chúng ta đang xử lý việc nối String Avà char Nsẽ dẫn đến AN.


4

Dấu nháy đơn cho biết ký tự và dấu nháy kép biểu thị chuỗi ..

char c = 'c';

'c' -----> c là một ký tự

String s = "stackoverflow";

"stackoverflow" ------> stackoverflow là một chuỗi (nghĩa là tập hợp các ký tự nếu)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.