Java 为什么我的扫描仪每三行要求输入一次?
有人知道为什么我的扫描仪要求每三行输入一次,而不是每一行输入一次吗?如果你运行它,你会看到它先问问题,然后不问两行,然后再问问题。我如何让它每行都问一个问题,更不用说把它存储在一个链表中了Java 为什么我的扫描仪每三行要求输入一次?,java,logic,java.util.scanner,scanning,Java,Logic,Java.util.scanner,Scanning,有人知道为什么我的扫描仪要求每三行输入一次,而不是每一行输入一次吗?如果你运行它,你会看到它先问问题,然后不问两行,然后再问问题。我如何让它每行都问一个问题,更不用说把它存储在一个链表中了 import java.util.Scanner; public class StackCalc { public static StackLL stackll = new StackLL(); public static void create() { String
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();
}
}
任何输入都会很棒。这是因为您正在使用方法
Scanner.next()
三次:
hold=scanner.next()
scanner.next().equals(“Q”)
和scanner.next().equals(“q”)
相反,只需通过更改以下内容来调用它一次:
scanner.next().equals(“Q”)
tohold.equals(“Q”)
及
scanner.next().equals(q”)
到hold.equals(“q”)
在程序中可能重复@AlexisKing我没有看到任何nextLine()。当我使用.nextLine();@kirbyquerby它使用next
,这将遇到相同的行为。这不是你的问题,但我打赌这是(scanner.next().equals(“Q”)| scanner.next().equals(“Q”)
不是您想要做的。如果第一个字符不是Q,则该代码将消耗2个令牌。