您好,我对一个非常简单的程序遇到了一些困难。
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");
}
}
}
当我运行这个程序时,我得到No Match,当我输入与users数组中的字符串相同的字符串时,我不知道怎么可能。有什么建议吗?
答案 0 :(得分:0)
您需要使用users[i].equals(username)
。
==
使用引用,而不是值比较。
答案 1 :(得分:0)
你需要写
if (users[i].equals(username))
不要使用==来比较Java中的字符串,因为它确定两个字符串是否是内存中完全相同的对象;而equals
实际上比较了字符串中的字符。
答案 2 :(得分:0)
使用.equals方法来比较字符串(和任何其他对象)而不是==运算符。 例如:
users[i].equals(username);
==与引用变量一起使用的运算符检查它们是否指向内存中的相同位置。