2013-05-01 4 views
-1

여기 내 문제가 있습니다. if 문은 inputdialog에 아무 것도 삽입하지 않으면 messagedialog를 표시하지 않지만 조건을 비교하기 위해 =를 사용하면 showup, 왜 이런거야? 내가 아는! = 같지 의미와 == 자바에서 가장 일반적인 실수의if 문이 조건을 검사하지 않습니다.

String firstName = ""; 
    String lastName = ""; 

    firstName = JOptionPane.showInputDialog("Please enter your first name"); 

    if (firstName == "") { 
     JOptionPane.showMessageDialog(null, "Don't leave it blank!"); 
    } else 
    { 
     lastName = JOptionPane.showInputDialog("Please enter your last name"); 
    } 

    String msg = "Hello " + firstName + lastName + "!"; 
    JOptionPane.showMessageDialog(null, msg); 
+0

그래, 당신 말이 맞아 - 자바의 분명 깨진. 문자열을'=='와 비교하려고 시도하는 것과 관련이 있습니다. –

답변

3

하나와 같다. 문자열은 == 대신 .equals()이 필요합니다.

잘못된 :

if (str == "foo") { 

} 

오른쪽 :

if ("foo".equals(str)) { // done in this order to avoid NPE 

} 
+0

멋지다! 그것은 일했다! – PotterWare

+0

그런 다음이 대답을 수락하면 D – nook

+0

대답을 수락하는 데 4 분, 이유는 없습니다. ( – PotterWare

관련 문제