-2

こんにちは、非常に単純なプログラムで問題が発生しています。

import java.util.*;
public class Compare
{
    public static void main( String args[] )
    {
         String username;
         Scanner input = new Scanner(System.in);
         String users[] = {"John", "James", "Smith", "Paul"};

         System.out.println("Please Enter Username: ");
         username = input.next();

         for( int i = 0; i < users.length(); i ++ )
         {
               if( users[i] == username )
                  System.out.println("Match");
               else
                  System.out.println("No Match");
         }
    }
}

このプログラムを実行すると、ユーザー配列の文字列と同じ文字列を入力したときにどのように可能になるかわかりません。助言がありますか?

4

3 に答える 3

0

を使用する必要がありますusers[i].equals(username)

==値の比較ではなく参照を使用します。

于 2013-11-03T06:58:28.207 に答える
0

あなたは書く必要があります

if (users[i].equals(username))

Java で文字列を比較するために == を使用しないでください。これは、2 つの文字列がメモリ内のまったく同じオブジェクトであるかどうかを判断するためです。一方、equals実際には文字列の文字を比較します。

于 2013-11-03T06:58:29.820 に答える