为什么键盘给定的循环迭代范围将自身视为迭代?

时间:2018-07-19 13:20:51

标签: java string loops split iteration

var testVal = Convert.ToSingle("10963798");
var formattedVal = string.Format("{0:n0}", testVal);

如果将范围输入为3,它将打印其长度为1。但是第一次迭代应该在获取stringInput之后打印长度。 此外,当您将范围输入为字符串时,您会得到 InputMismatchException 。哪个是对的。那么问题出在哪里呢? 谢谢。

1 个答案:

答案 0 :(得分:0)

css仅消耗最多输入的数字,并将“ \ n”留在扫描器缓冲区中。您可以在调用Scanner.nextInt()之后立即使用Scanner.next()清除该缓冲区。

Scanner.nextInt()

结果:

import java.util.Scanner;

public class StackOverflow {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int range=scanner.nextInt();
        scanner.next();

        for(int i=1;i<=range;i++){
            String stringInput =scanner.nextLine();
            String[] total =stringInput.split("\\s");
            int length=total.length;
            System.out.println(length);
        }

        scanner.close();
    }
}