Java无法识别扫描仪输入
我想写一个与输入一起工作的程序。对于新行中的每个输入,它应接受输入并执行“扩展”功能。我做了很多尝试,我发现它与函数配合得很好(所以无论我有多少输入,它都能正确地处理输入)。但我想在写“0”时停止程序。但是程序没有看到我在写“0”。它总是进入else语句,但从不进入if语句。 重要的是,最后所有内容都应打印出来。那么我做错了什么 我希望这个在最后(输入:卫星,喷气机)Java无法识别扫描仪输入,java,string,input,while-loop,java.util.scanner,Java,String,Input,While Loop,Java.util.scanner,我想写一个与输入一起工作的程序。对于新行中的每个输入,它应接受输入并执行“扩展”功能。我做了很多尝试,我发现它与函数配合得很好(所以无论我有多少输入,它都能正确地处理输入)。但我想在写“0”时停止程序。但是程序没有看到我在写“0”。它总是进入else语句,但从不进入if语句。 重要的是,最后所有内容都应打印出来。那么我做错了什么 我希望这个在最后(输入:卫星,喷气机) 这里的问题是,您试图比较的不是字符串内容,而是它的实例引用。您需要的是比较字符串值 修改while循环中的if语句,如下所示是修
这里的问题是,您试图比较的不是字符串内容,而是它的实例引用。您需要的是比较字符串值 修改
while
循环中的if
语句,如下所示是修复问题的可能解决方案:
:fire: Buying DAILY :fire:
:Satellite: :Satellite: :Satellite: :Satellite:
:Jet: :Jet: :Jet: :Jet:
或使用:
while (x==true) {
String input = scanner.next();
if (input.equals("0")) {
System.out.println(complete);
x=false;
}
else {
complete += extend(input);
}
}
输入/输出示例如下:
if (input.compareTo("0") == 0) {
字符串不是基元,因此不能使用相等运算符(=)与另一个字符串进行比较 要比较两个字符串,只需使用.equals()方法,该方法已作为Java中字符串API的一部分提供 i、 e
谢谢。我从未见过compareTo(),但它很有效。@KerryKilian不客气!
if (input.compareTo("0") == 0) {
fire
Satellite
Jet
0
:fire: Buying DAILY :fire:
:fire: :fire: :fire: :fire:
:Satellite: :Satellite: :Satellite: :Satellite:
:Jet: :Jet: :Jet: :Jet:
input.equals("0")