2016-10-17 2 views
7

나는 charAt() 메서드로 할 수있는 다양한 비교를 보아왔다.자바 문자열/문자 charAt() 비교

그러나 나는 그 중 일부를 이해할 수 없습니다.

String str = "asdf"; 
str.charAt(0) == '-'; // What does it mean when it's equal to '-'? 


char c = '3'; 
if (c < '9') // How are char variables compared with the `<` operator? 

어떤 도움을 주시면 감사하겠습니다.

+0

_ "? '-'그것이 동일한 때 무엇을 의미 하는가"그 _하지 단서 만 createor 코드는 알 수 있습니다 ... –

+2

_ "char 연산자는'<'연산자와 어떻게 비교됩니까?"_ primitive'char'는 _numeric_ 유형이며'>'또는'< '와 비교할 수 있습니다 –

답변

13

// '-'와 같은 것은 무엇을 의미합니까?

모든 문자와 기호는 문자입니다. String의 첫 번째 문자를보고 일치하는 항목을 확인할 수 있습니다.

이 경우 첫 번째 문자를 가져와 빼기 문자인지 확인하십시오. 이 마이너스 기호는 (char) 45 아래 참조

// 문자 변수는 < 연산자와 어떻게 비교됩니까?

Java에서 모든 문자는 실제로 16 비트 부호없는 숫자입니다. 각 문자에는 유니 코드 기반의 숫자가 있습니다. 예 : '9'은 문자 (char) 57입니다.이 비교는 9의 코드보다 작은 모든 문자에 적용됩니다. 공간.

enter image description here

당신의 문자열의 첫 번째 문자는 (char) 97 그렇게 (char) 97 < (char) 57이 거짓입니다 'a'이다.

+0

이것은 문자의 기초입니다 부호화. https://en.wikipedia.org/wiki/Character_encoding 위 참조 정의는 ASCII 문자 인코딩을 사용합니다. – Andrew

0

str.charAt(0) == '-';은 부울을 반환합니다.이 경우 false입니다.

if (c < '9')은 ascii 값 '3'과 ascii 값 '9'를 비교하고 다시 boolean을 반환합니다.

0
str.charAt(0) == '-' 

이 문장은 0 점의 문자가 '-'이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

if (c < '9') 

이 경우 c의 ascii 값을이 경우 99의 ascii 값인 '9'와 비교합니다.

0

문자는 Java의 기본 유형이므로 복잡한 객체가 아닙니다. 결과적으로 chars을 비교할 때마다 해당 값을 직접 비교하게됩니다.

Java 문자는 각 문자에 16 비트 값을 제공하는 원래 유니 코드 사양에 따라 정의됩니다. 이들은 c>'3' 또는 str.charAt(0) == '-'과 같은 것을 비교할 때 Java가 비교하는 값입니다.

1
String str = "asdf"; 
String output = " "; 
if(str.charAt(0) == '-'){ 
    // What does it mean when it's equal to '-'? 
    output= "- exists in the first index of the String"; 
} 
else { 
    output="- doesn't exists in the first index of the String"; 
} 
System.out.println(output); 

인덱스 0에 해당 문자가 있는지 비교하여 비교합니다.

if (c < '9')에 대해서는 c와 9의 ascii 값을 비교합니다. 나는 c의 ascii가 '9'의 ascii에 상응하는 것보다 작은지를 왜 체크 할 것인지는 모르겠다.당신이 할 수있는

어떤 문자의 아스키 값을 얻고 싶은 경우에, :

char character = 'c'; 
int ascii = character; 
System.out.println(ascii);