我的第二个扫描仪输入会根据需要存储,但仍然会执行比较correctString == stringValue的if条件。 你能帮忙吗?
{
static String stringValue = "A";
public static void main(String[] args) {
int time;
time = speedType();
//System.out.println(time);
}
private static int speedType() {
System.out.println("Let's play a game\nHow fast can you type \"I type very quickly\" \nPress Enter then type the statement and then press Enter again");
Scanner scanner = new Scanner (System.in);
String string = scanner.nextLine();
if(string.equals("")){
Date startTime = new Date();
System.out.println("Start:\n");
String correctString = scanner.nextLine();
System.out.println(correctString);
if (correctString == stringValue){
Date endTime = new Date();
System.out.println(endTime);
}
else
System.out.println("Please enter correct string");
}
return 0;
}}
答案 0 :(得分:1)
关于,
if (correctString == stringValue){
不要使用==
比较字符串。请改用equals(...)
或equalsIgnoreCase(...)
方法。了解==
检查两个对象是否相同,而不是您现在感兴趣的对象。另一方面,这些方法检查两个字符串是否具有相同顺序的相同字符,这就是重要的。而不是
if (fu == "bar") {
// do something
}
做,
if ("bar".equals(fu)) {
// do something
}
,或者
if ("bar".equalsIgnoreCase(fu)) {
// do something
}