Apakah ada perbedaan antara tanda kutip tunggal dan ganda di Jawa?

101

Apakah ada perbedaan antara tanda kutip tunggal dan ganda di Jawa?

pupeno
sumber

Jawaban:

146

Gunakan tanda kutip tunggal untuk literal char, tanda kutip ganda untuk literal String, seperti ini:

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

Mereka tidak dapat digunakan dengan cara lain (seperti di Python, misalnya).

Yuval Adam
sumber
10
Dan, tentu saja, perilaku ini dipinjam dari C (yang mungkin didapat di tempat lain, saya kira).
JesperE
Bagi saya, apostrof literal secara otomatis dimasukkan ke intdalam konteks seperti itu. Jadi tidak perlu begitu char. Pantas mendapat beberapa suara negatif ... sederhana.
Hydroper
36

Karakter adalah karakter UTF-16 tunggal, yaitu huruf, angka, tanda baca, tab, spasi, atau yang serupa.

Sebuah karakter literal adalah salah satu karakter tunggal yang diapit oleh tanda kutip tunggal seperti ini

char myCharacter = 'g'; 

atau urutan escape, atau bahkan urutan escape unicode:

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

Perlu dicatat bahwa urutan escape Unicode diproses sangat awal selama kompilasi dan karenanya menggunakan '\ u00A' akan menyebabkan kesalahan kompilator. Untuk simbol khusus, lebih baik menggunakan urutan escape sebagai gantinya, yaitu '\ n' daripada '\ u00A'.

Untuk tanda kutip ganda String, Anda harus menggunakan "urutan pelolosan tanda kutip ganda" ( \") di dalam string di mana ia akan menghentikan string.
Misalnya:

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

Tanda petik ganda tidak perlu keluar dari tanda petik tunggal.
Baris berikut legal di Jawa:

char doublequote = '"';
VonC
sumber
12

Mari pertimbangkan baris kode ini (Java):

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

1) Baris pertama adalah rangkaian dari Hdan Aitu akan menghasilkan HA(String literal)

2) Kedua kita menjumlahkan nilai dua char yang sesuai dengan Tabel ASCII H= 72 dan a= 97 itu artinya kita menjumlahkan 72+97like ('H'+'a').

3) Mari pertimbangkan kasus lain di mana kita akan memiliki:

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

Dalam hal ini kita berurusan dengan penggabungan String Adan char Nyang akan menghasilkan AN.

Eddy Bayonne
sumber
4

Kutipan tunggal menunjukkan karakter dan tanda kutip ganda menunjukkan string ..

char c = 'c';

'c' -----> c adalah karakter

String s = "stackoverflow";

"stackoverflow" ------> stackoverflow adalah string (yaitu kumpulan jika karakter)

Horse_1995
sumber