Java 当程序读取空白时,Else循环语句不显示

Java 当程序读取空白时,Else循环语句不显示,java,Java,我希望用户输入他/她想做的事情,当程序读取一个空格/无输入时,它将显示中断循环,我在if loop语句中播放过,它不会显示中断循环 do { System.out.print("Type in stuff you would like to do: "); String stuffToDo = input.nextLine(); if (!" ".equals(stuffToDo)) { ++n; ToDo.add(stuffToDo);

我希望用户输入他/她想做的事情,当程序读取一个空格/无输入时,它将显示中断循环,我在if loop语句中播放过,它不会显示中断循环

do {
    System.out.print("Type in stuff you would like to do: ");
    String stuffToDo = input.nextLine();

    if (!" ".equals(stuffToDo)) {
        ++n;
        ToDo.add(stuffToDo);
    } else {
        System.out.println("breaking out of the loop");
        break;
    }
} while (input.hasNext());
break;
.equalsstuffToDo检查stuffToDo是否由单个空格组成

我想你是想要的,等一下


如果使用.equalStuffTodo.trim,它将与任意数量的空白符号一起使用。有关更多详细信息,请咨询Java dock。

最简单的解决方案是更改

if (!" ".equals(stuffToDo)) 

这样,任何空输入或无输入都会停止程序

修剪-将删除输入开头和结尾的所有白色字符


isEmpty-如果输入为空,将返回true

我建议您尝试此程序。如果只键入一个空格,则会得到一个包含一个空格的字符串

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    while (true) {
        String s = sc.nextLine();
        if ("".equals(s))
            System.out.println("You typed a blank line");
        else if (" ".equals(s))
            System.out.println("You typed one space");
        else
            System.out.println("You typed '" + s + "'");
    }
}
印刷品

You typed a blank line

You typed one space
hi
You typed 'hi'

我的猜测是,您输入的行中没有一个空格。尝试检查空字符串。我在1个开放空间中尝试过,但我的程序不会显示中断loop@DarelLow什么是开放空间?
You typed a blank line

You typed one space
hi
You typed 'hi'