为什么我的扫描仪要求每三行输入一次?

时间:2015-01-27 00:38:53

标签: java logic java.util.scanner scanning

有谁知道为什么我的扫描仪要求每三行输入一次,而不是每一行?如果你运行它,你将会看到它首先询问问题,但是然后不再有两行,那么它会再次询问问题。如何让它每行提出一个问题,更不用说将它存储在一个链表中。

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();
    }
}

任何输入都会很棒。

1 个答案:

答案 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")