2012-11-04 5 views
1

가능한 중복 :
How do I compare strings in Java?문자열 비교

나는 그것의 URL에서 값을 불러 오는에 잘 작동이 코드를

있지만 문자열 "는 것을 인식하지 True "는 toString()이 필요한 것입니까 아니면 다른 것입니까?

try { 
    URL url = new URL("http://www.koolflashgames.com/test.php?id=1"); 
    URLConnection yc = url.openConnection(); 
    BufferedReader in = new BufferedReader(new InputStreamReader(yc 
      .getInputStream())); 
    inputLine = in.readLine(); 
    inputLine = inputLine.toString(); 
    if(inputLine == "True") { 
     logger.info(inputLine); 
     player.sendMessage("Thanks"); 
    }else{ 
     logger.info(inputLine); 
     player.sendMessage("HAHAHA"); 
    } 
    in.close(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
+1

'=='(참조 동일성)이 아닌'equals'를 사용하여 문자열을 비교하십시오. –

+0

우리는 java의 문자열 비교 문제에 대해 다른 stackexchange 사이트를 만들어야합니다. 그들의 대답은 모두 거의 ".equals를 사용한다"가된다. –

+2

@Aniket : 그것이 바로 "중복 된 질문으로 끝나는"것이다. –

답변

4

==은 문자열이므로 내용이 개체이므로 비교할 수 없습니다. 개체를 비교하는 메서드를 만들어야합니다. 문자열의 경우 stringName.equals(otherString)을 사용할 수 있습니다.

+1

그럼 개체에'=='을 사용할 수는 있지만 뭔가 의미가 있습니다 그밖에. –

+0

그래, 아마도 그걸 편집해야 해. – Clark

+0

내 문제가 해결되었습니다. 미안 내 질문이 너무 분명해 보였다면, 나는 방금 java로 작업하기 시작했다. – arennaker

2

String 개체를 비교하려면 equals() 메서드를 사용하십시오.

== 연산자는 두 개의 String에 동일한 참조가 있는지 확인합니다.

자세한 내용은 How do I compare strings in Java?을 참조하십시오.

3

문자열을 비교하려면 equals를 사용해야합니다. 교체 :

if(inputLine == "True") { 

와 함께 두 개의 참조 값이 동일하지 않을 경우, 같은 객체를 참조하는 경우

if(inputLine.equals("True")) { 

연산자는 ==을 알려줍니다.

3

나는 달라집니다. 대소 문자를 무시하고 문자열을 비교하려면 .equalsIgnoreCase() 메서드를 사용하십시오. 이것은 "True", "TRue", "tRue"등과 같은 모든 경우와 일치합니다. 약 16 일치합니다.

+0

그가 그 기능을 원하지 않는다면? 하지만 여전히 도움이되는 제안 +1입니다. – eboix

+0

여전히 그의 문자열 @eboix :-P와 일치 할 것입니다. –

+0

".equalsWithTypos()"를 사용하여 "treu"및 "ture"와 같은 항목을 찾습니다. –