Java'da tek ve çift tırnak arasında bir fark var mı?


101

Java'da tek ve çift tırnak arasında bir fark var mı?

Yanıtlar:


148

Değişmez chars için tek tırnak, değişmez s için çift ​​tırnak kullanın String, örneğin:

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

Başka hiçbir şekilde kullanılamazlar (örneğin Python'da olduğu gibi).


10
Ve elbette, bu davranış C'den ödünç alınmıştır (muhtemelen başka bir yerden aldığını varsayıyorum).
JesperE

Benim için int, bu tür bağlamlarda gerçek kesme işaretleri otomatik olarak kullanılır . Yani olması gerekmiyor char. Bazı olumsuz oyları hak etmek ... basit.
Hydroper

36

Karakter, tek bir UTF-16 karakteridir, yani bir harf, bir rakam, bir noktalama işareti, bir sekme, bir boşluk veya benzeri bir şeydir.

Bir karakter değişmezi, bunun gibi tek tırnak işaretleri içine alınmış tek bir karakterdir

char myCharacter = 'g'; 

veya bir kaçış dizisi veya hatta bir unicode kaçış dizisi:

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

Unicode kaçış dizilerinin derleme sırasında çok erken işlendiğini ve bu nedenle '\ u00A' kullanımının bir derleyici hatasına yol açacağını belirtmek gerekir. Özel semboller için bunun yerine kaçış dizilerinin kullanılması daha iyidir, yani "\ u00A" yerine "\ n".

Çift tırnak String, \"aksi takdirde dizeyi sonlandıracağı dizelerin içinde bir "çift tırnak kaçış dizisi" ( ) kullanmanız gerekir.
Örneğin:

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

Tek tırnak içindeki çift tırnaktan kaçmak gerekli değildir.
Aşağıdaki satır Java'da yasaldır:

char doublequote = '"';

12

Şu kod satırlarını (Java) ele alalım:

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

1) İlk satır, bitiştirilmesidir Hve Abu HA(Dize değişmezi) ile sonuçlanacaktır.

2) İkincisi, ASCII Tablosuna göre H= 72 ve a= 97 olan iki karakterin değerlerini ekliyoruz, 72+97bu da benzerini eklediğimiz anlamına geliyor ('H'+'a').

3) Sahip olacağımız başka bir durumu ele alalım:

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

Bu durumda String Ave char'ın bitiştirilmesi ile Nsonuçlanacak AN.


4

Tek tırnak karakteri, çift tırnak ise dizeyi belirtir.

karakter c = 'c';

'c' -----> c bir karakterdir

Dize s = "stackoverflow";

"stackoverflow" ------> stackoverflow bir dizedir (yani karakter ise koleksiyon)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.