首页 > 解决方案 > 结束一个while循环条件

问题描述

我正在尝试制作一个简单的程序,该程序使用扫描仪进行输入,并有一个 while 循环继续输入,直到输入结束字符。我希望扫描仪接受输入并将字符串添加到堆栈列表中。我试图弄清楚为什么在键入空格时这段代码不会终止 while 循环。

import java.util.Scanner;

public class ReverseString<E> {

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    Stack<String> stack = new Stack();

    //while(scan.hasNext() && !stack.equals(" ")){
 //       while(!scan.nextLine().equals("")){
    while (scan.hasNext()) {
        stack.push(scan.next());
        if (scan.equals(" ")) {
            break;
        }

    }

    System.out.print(stack.pop() + " ");


 }
}

标签: javawhile-loopjava.util.scanner

解决方案


while (scan.hasNext()) {
    stack.push(scan.next());
    if (scan.equals(" ")) {
        break;
    }

}

改成

while (scan.hasNextLine()) {
    String value = scan.nextLine();
    if (" ".equals(value)) {
        break;
    }
    stack.push(value);
}

scan 是一个扫描器,它不是一个字符串,scan.equals(" ")总是返回 false。


推荐阅读