2014-11-01 3 views
3

나는 나의 문자열에서 문자가 어떤 다른 char 값과 같으면보고 싶어하지만 문자열의 문자 그래서 난이 사용한 무엇인지 모른다 :자바 - CharAt()가 다른 문자와 같은지 확인하기 위해 charAt()를 사용할 수없는 이유는 무엇입니까?

if (fieldNames.charAt(4) == "f") 

하지만 오류를 얻을 :

"Operator '==' cannot be applied to 'char', 'jav.lang.String'" 

하지만 "g" == "h"이 작동하는 것 같습니다. '=='을 char 유형과 함께 사용할 수 있습니다.

이 작업을 올바르게 수행하는 다른 방법이 있습니까? 감사합니다. "f" 때문에

+7

''f "'는 문자열이고''f''는 char입니다. – user2336315

답변

12
if (fieldNames.charAt(4) == 'f') 

StringfieldNames.charAt(4)char이다. g와 h를 모두

Strings이기 때문에 당신은 체크 문자에 대한

"g" == "h" 작품을 'f'을 사용해야합니다 당신은 당신이 대신 "g".equals("h")를 사용해야합니다 "g" == "h"을 사용할 수 없습니다. .... 등의 데이터 유형은 primitive에 ==를 사용할 수 있지만 objects과 같이 String은 매우 다릅니다. To know why read this

하지만 당신은 또한 사용할 수 있습니다

'g' == 'h' 
당신이 단일 인용

String s="g"; 

char c='g'; 

에 의해 큰 따옴표 및 문자로 문자열을 포장해야하지만, 문자는 하나 개의 문자를 가질 수 있지만, 문자열 이상을 가질 수

one

String s="gg"; valid 

char c='gg'; not valid 
+1

정말 고마워요! 나는 결코 그것을 알지 못했다. – Mayron

+1

' "g"== "h"'_compiles_하지만 _work_하지 않습니다. 'char'와'=='를 비교할 수 있지만'String'을 비교할 수 없다는 점을 지적하십시오. –

+0

@BoristheSpider 예 .i 대답에 추가했습니다. 감사합니다! –

0

나는

if (str.substring(0,1).equals("x")) 
문자열이 루프 str.substring에 사용될 수

(I 난 + 1)

수 charAt (I) .equals (X '가 : 동일한 문제,하지만 사용하여 해결할 수 있었다 ')는 함께 작동하지 않습니다.