以下是代码:
package com.myprograms.test;
import java.util.Scanner;
public class MyProgram {
public static void main(String[] args) {
Scanner sIn = new Scanner(System.in);
String name = "";
System.out.print("Enter the name:");
name = sIn.next();
if (name.equals("somename")) {
System.out.println("Success - Case 1");
} else {
System.out.println("Failed - Case 1");
}
if (name == "somename") {
System.out.println("Success - Case 2");
} else {
System.out.println("Failed - Case 2");
}
sIn.close();
}
}
以下是输出:
Enter the name: somename
Success - Case 1
Failed - Case 2
以下是问题:
为什么对于Java中的相同条件,一个输入的行为会有所不同?这是Java错误吗?
答案 0 :(得分:0)
“Java错误” - 真的...... ??
这已被多次解释,无论如何这里只是一个小解释:
在比较Java
中的字符串时,请使用String.equals()
或String.equlasIgnoreCase()
方法。
使用==
运算符,比较地址。
使用equals()
或equalsIgnoreCase()
方法比较字符串的内容。
Here是一个很好的解释(请阅读“Meet Jorman”示例):
观察:您可以在获取输入后关闭Scanner
,而不是程序的最后一行,以便更好地进行资源管理。