2016-07-22 3 views
1

私はJavaを学びたいと思っています。あなたの名前を入力したいのですが、名前入力があなたの名前と一致すればHello [あなたの名前]を印刷します。入力がmy nameと等しい文字列に等しい場合は、helloと入力を出力します。しかし、そうではありません... else文は私に混乱させるものです。なぜなら、2つの値をプリントして、どこに等しいか、どちらの場合でも...助けてくれてありがとうと思うからです。文字列入力から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'は1つの引数だけをとります。文字列の連結には '+'(または 'StringBuilder')を使います。 –

答えて

2

はあなたが.equals(String)メソッドを使用する必要がある2つの文字列を比較するとき

if (inp.equals(name)) { 

覚えている:参照の等価のための==テストを(彼らは同じオブジェクトであるかどうか)。

1

あなたはequals()メソッドを使用していません。それは、==ではなく、Javaの文字列をコンパイルするために使用しています。

if (inp.equals(name)) { 
    System.out.printf("Hello", name); 
    } else { 
    System.out.println(inp + name); 
    } 
関連する問題