【发布时间】:2015-01-27 00:38:53
【问题描述】:
有谁知道为什么我的扫描仪要求每三行而不是每行输入一次?如果你运行它,你会看到它首先问了这个问题,然后又问了两行,然后它再次问了这个问题。我如何让它每行都问一个问题,更不用说将它存储在链表中了。
import java.util.Scanner;
public class StackCalc {
public static StackLL stackll = new StackLL();
public static void create() {
String hold = new String();
Scanner scanner = new Scanner(System.in);
boolean running = true;
while (true) {
System.out.print("Enter number, math operation(+,-,*, or /), or Q to quit: ");
hold = scanner.next();
if (scanner.next().equals("Q") || scanner.next().equals("q")) {
System.out.println(hold);
break;
}
}
}
public static boolean checkInt(String s, int it){
Scanner scan = new Scanner(s.trim());
if(!scan.hasNextInt(it))
return false;
scan.nextInt(it);
return !scan.hasNext();
}
public static void main(String args[]) {
create();
}
}
任何输入都会很棒。
【问题讨论】:
-
@AlexisKing 我在程序中没有看到任何 nextLine()
-
当我使用 .nextLine(); 时通常会发生同样的事情;
-
@kirbyquerby 它使用
next,会遇到同样的行为。 -
这不是你的问题,但我打赌这
(scanner.next().equals("Q") || scanner.next().equals("q"))不是你想要做的。如果第一个字符不是 Q,那么该代码将消耗 2 个令牌。
标签: java logic java.util.scanner scanning