我这里有这段代码(java):
void findDistance() {
String name1 = new String();
Scanner s = new Scanner(System.in);
System.out.print("Enter the name of Starting Location: ");
name1 = s.next();
name1 = name1.toLowerCase();
for (int i = 0; i < numCities; i++) {
System.out.println(name1);
System.out.println(cityNames[i]);
if (name1 == cityNames[0]){
// int x = i;
System.out.print("x");
}
else {
// System.out.println(name1);
// System.out.println(cityNames[i]);
System.out.println("y");
}
}
}
由于某种原因,即使name1和cityNames [0]相等,if语句也不这么认为。我有几个打印语句来返回值来测试它,它打印相同。任何人都知道为什么会这样?
答案 0 :(得分:4)
更改行
if (name1 == cityNames[0]){
到
if (name1.equals(cityNames[0])){
您需要使用equals()
或使用==
来比较变量的引用。