下面的脚本将比较两个字符串以查看它们是否相等。在这种情况下,声明一个字符串,另一个字符串从扫描仪输入。我理解为什么这两个字符串在比较时不相等(例如aName = test和anotherName = test),因为它们将包含不同的引用地址。
下一段将引出我的问题。 nextLine()方法返回一个字符串。我通常知道如果两个字符串包含相同的文本,它们将在字符串池中具有相同的地址。 所以我的问题是,为什么不是从nextLine()方法返回的字符串到分配给字符串池的anotherName变量并给出与aName相同的地址,因为它们具有相同的文本? *
import java.util.Scanner;
public class TryToCompareString
{
public static void main(String[] args)
{
String aName = "test";
String anotherName;
Scanner input = new Scanner(System.in);
System.out.println("Enter your name");
anotherName = input.nextLine();
if (aName == anotherName)
{
System.out.println(aName + " equals " + anotherName);
}
else
{
System.out.println(aName + " does not equal " + anotherName);
}
}
}