Java无法识别扫描仪输入

Java无法识别扫描仪输入,java,string,input,while-loop,java.util.scanner,Java,String,Input,While Loop,Java.util.scanner,我想写一个与输入一起工作的程序。对于新行中的每个输入,它应接受输入并执行“扩展”功能。我做了很多尝试,我发现它与函数配合得很好(所以无论我有多少输入,它都能正确地处理输入)。但我想在写“0”时停止程序。但是程序没有看到我在写“0”。它总是进入else语句,但从不进入if语句。 重要的是,最后所有内容都应打印出来。那么我做错了什么 我希望这个在最后(输入:卫星,喷气机) 这里的问题是,您试图比较的不是字符串内容,而是它的实例引用。您需要的是比较字符串值 修改while循环中的if语句,如下所示是修

我想写一个与输入一起工作的程序。对于新行中的每个输入,它应接受输入并执行“扩展”功能。我做了很多尝试,我发现它与函数配合得很好(所以无论我有多少输入,它都能正确地处理输入)。但我想在写“0”时停止程序。但是程序没有看到我在写“0”。它总是进入else语句,但从不进入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")