2016-07-22 5 views
1

Java를 배우려고하고 이름을 입력하려고합니다. 이름 입력이 이름과 일치하면 Hello [your name]이 출력됩니다. if 문을 사용하여이 작업을 수행하고 있습니다. 입력이 내 이름과 같은 문자열과 같으면 입력에 hello와 입력을 더합니다. 그러나 그것은 ... else 문은 나를 혼란스럽게 만듭니다. 왜냐하면 두 값을 인쇄하여 평등한지, 둘 다 어디서 도움을 얻을 수 있는지 알아보기 때문입니다.문자열 입력에서 if 문을 생성하는 데 어려움이 있습니다.

package AgeTester; 
import javax.swing.JFrame; 
import javax.swing.JOptionPane; 

public class HelpSystem { 
public static void main(String args[]) { 
    String inp = "Jono"; 
    JFrame frame = new JFrame("Input Dialogue"); 

    String name = JOptionPane.showInputDialog(frame, "What is your name?"); 

    if (inp == name) { 
    System.out.printf("Hello", name); 
    } else { 
    System.out.println(inp + name); 
    } 
    System.exit(0); 
} 
} 
+0

'if'조건에서'inp.equals (name)'을 사용하고 문자의 대소 문자를 무시하기 위해'inp.equalsIgnoreCase (name)'를 사용하십시오. – VatsalSura

+0

또 다른 오류가 있습니다 : 내부 블록 인 경우 'System.out.println'은 하나의 인수 만 사용합니다. 문자열 연결에는'+'(또는'StringBuilder')를 사용하십시오. –

답변

2

당신은 당신이 .equals (String) 메소드를 사용한다 두 문자열을 비교하면

if (inp.equals(name)) { 

기억 : 참조 평등에 대한 == 테스트를 (그들은 같은 객체인지).

1

당신은 equals() 방법을 사용하지 않습니다. 우리는 자바 문자열을 ==이 아닌 comapre에 사용합니다.

if (inp.equals(name)) { 
    System.out.printf("Hello", name); 
    } else { 
    System.out.println(inp + name); 
    }