java - 结束一个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() + " ");
}
}
解决方案
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。