有谁知道为什么我的扫描仪要求每三行输入一次,而不是每一行?如果你运行它,你将会看到它首先询问问题,但是然后不再有两行,那么它会再次询问问题。如何让它每行提出一个问题,更不用说将它存储在一个链表中。
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();
}
}
任何输入都会很棒。
答案 0 :(得分:3)
这是因为您使用方法Scanner.next()
三次:
hold = scanner.next()
scanner.next().equals("Q")
和scanner.next().equals("q")
相反,只需通过更改:
调用一次 scanner.next().equals("Q")
至hold.equals("Q")
和
scanner.next().equals(q")
至hold.equals("Q")