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