Java에서 작은 따옴표와 큰 따옴표 사이에 차이가 있습니까?


101

Java에서 작은 따옴표와 큰 따옴표 사이에 차이가 있습니까?

답변:


146

다음 과 같이 char리터럴에는 작은 따옴표를, 리터럴 에는 큰 따옴표를 사용합니다 String.

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

다른 방법으로는 사용할 수 없습니다 (예 : Python에서).


10
그리고 물론이 동작은 C에서 빌려온 것입니다 (아마 다른 곳에서 가져 왔을 것입니다).
JesperE

저에게있어 아포스트로피 int는 이러한 컨텍스트에서 자동으로 캐스트 됩니다. 따라서 char. 약간의 반대표를받을 자격이 있습니다 ... 단순합니다.
Hydroper

36

문자는 단일 UTF-16 문자, 즉 문자, 숫자, 구두점, 탭, 공백 또는 이와 유사한 것입니다.

문자 리터럴은 다음과 같이 작은 따옴표로 묶인 단일 문자입니다.

char myCharacter = 'g'; 

또는 이스케이프 시퀀스 또는 심지어 유니 코드 이스케이프 시퀀스 :

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

유니 코드 이스케이프 시퀀스는 컴파일 중에 매우 일찍 처리되므로 '\ u00A'를 사용하면 컴파일러 오류가 발생합니다. 특수 기호의 경우 대신 이스케이프 시퀀스를 사용하는 것이 좋습니다. 즉, '\ u00A'대신 '\ n'.

큰 따옴표가 for String\"경우 문자열 내부에 "큰 따옴표 이스케이프 시퀀스"( ) 를 사용해야 합니다. 그렇지 않으면 문자열이 종료됩니다.
예를 들면 :

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

작은 따옴표 안에 큰 따옴표를 이스케이프 할 필요는 없습니다.
다음 줄은 Java에서 합법적입니다.

char doublequote = '"';

12

다음 코드 줄 (Java)을 살펴 보겠습니다.

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

1) 첫 번째 줄의 연결 인 HA그 발생합니다 HA) 리터럴 스트링 (

2) 두 번째로 우리는 ASCII 테이블 H= 72 및 a= 97 에 따라 두 문자의 값을 추가 72+97합니다 ('H'+'a').

3) 다음과 같은 다른 경우를 고려해 봅시다.

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

이 경우 우리는 String A과 char의 연결을 다루고 N있습니다 AN.


4

작은 따옴표는 문자를 나타내고 큰 따옴표는 문자열을 나타냅니다.

char c = 'c';

'c'-----> c는 문자입니다.

String s = "stackoverflow";

"stackoverflow"------> stackoverflow는 문자열입니다 (즉, 문자 인 경우 모음)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.