This question already has answers here:
How do I compare strings in Java?
(23个答案)
6年前关闭。
这是我的代码。我是超级菜鸟,所以不要用力向我开火哈哈。我尝试了几种不同的方法,并查看了许多有关如何关闭循环的帖子和站点。我认为问题在于(i ==(“ quit”))在用户键入quit时无法识别。通过让我输入一个新单词并告诉我它是错误的单词,它无限循环。
这是代码。
}
谢谢你们给我的任何帮助!我也用while(true)进行了尝试,但也无法使其正常工作。同样的结果,当我键入“退出”时无法识别。
(23个答案)
6年前关闭。
这是我的代码。我是超级菜鸟,所以不要用力向我开火哈哈。我尝试了几种不同的方法,并查看了许多有关如何关闭循环的帖子和站点。我认为问题在于(i ==(“ quit”))在用户键入quit时无法识别。通过让我输入一个新单词并告诉我它是错误的单词,它无限循环。
这是代码。
package monty;
import java.io.*;
import java.io.Console;
import java.util.Arrays;
import java.io.IOException;
import java.util.Scanner;
public class firsttry2 {
public static void main(String[] args) {
System.out.print("Enter the word 'quit' to end this program. Otherwise, it will run indefinitely.");
int x=0;
Scanner in=new Scanner(System.in);
while (x<1) {
String i;
i=in.next();
if (i==("quit")) {x++; in.close(); break;}
else {System.out.print("You did not enter the word 'quit'. Please try again .");
}
}
}
}
谢谢你们给我的任何帮助!我也用while(true)进行了尝试,但也无法使其正常工作。同样的结果,当我键入“退出”时无法识别。
最佳答案
最佳替代选择是i.equals("quit")
而不是i==("quit")
原因是==
和equals()
不相同。==
检查身份。那就是两个对象是否是相同的对象并指向内存中的相同地址。
默认情况下,.equals()
做同样的事情,但是可以被覆盖以执行不同的相等比较。 (即,如果字符串具有相同顺序的相同字符,则视为相等)
如果您希望用户也可以写quit或Quit,那么也可以使用equals()
代替equalsIgnoreCase()
关于java - 当输入为“quit”(退出循环/程序)时,Java无法识别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19107779/
10-11 20:43