4

私はJavaを初めて使用しますが、これは非常に単純なようです。おそらく何かが足りないのでしょう。

以下は私のコードの少しです、それがすべきことはユーザーにパスワードを入力させることです、それはuserinputに保存されます、残念ながら私がそれを== "admin"に設定したadminと入力すると、それは機能しません私が持っているように、すべて大文字またはすべて小文字にする場合。

String password="admin"などの変数を事前設定してみました。if(userinput == password)に設定しましたが、それも機能していないようです。助けてください!

    }
    public void protect(){
        Scanner input = new Scanner(System.in);
        System.out.println("Enter password: ");
        String userinput = input.nextLine();
        if (userinput == "admin"){
            System.out.println("Correct!");
        } else if (userinput != "admin"){
            System.out.println("Wrong!");
        }
    }
}

簡単にまとめると、入力したパスワードに関係なく、「admin」であっても、間違いを犯します。

4

1 に答える 1

22

そのような文字列を比較することはできません。.equals()代わりに使用してください:

if(userinput.equals("admin")) { // etc

なぜ聞くの?

  • ==実際のオブジェクト参照が同じであるかどうかを確認します。
  • equals(...)2つの文字列が同じ文字列(つまり、同じ順序の同じ文字)を保持しているかどうかを確認します
于 2012-06-07T01:34:41.803 に答える