如何逐行扫描输入整数?

时间:2012-08-30 03:20:45

标签: java input

我们想编写一个程序来解决两个"Ax2+Bx+C=0"形式方程式。

当方程式Ax2+Bx+C=0的系数按每个等式输入1行时,它可能如下所示:

2   3       // linear equation when the coefficient for the term x2 is zero

4   5   6   // quadratic equation

nextInt()不会告诉我们4是第一行的第三个数字还是第二行的第一个数字。也就是说,以下输入将返回完全相同的信息。

2   3   4    // quadratic equation

5   6          // linear equation

对于nextInt()

,两个输入也与2 3 4 5 6没有区别

那么如何逐行扫描这些系数呢?

2 个答案:

答案 0 :(得分:4)

使用扫描程序的nextLine()一次获取每一行,然后使用String#split(" ")以正确的顺序获取各个令牌。通过获取返回的数组长度,您可以轻松找出有多少令牌。您当然需要解析通过Integer.parseInt(...)返回的令牌字符串。

答案 1 :(得分:0)

- 使用扫描程序的nextLine()方法。

例如:

Scanner scan = new Scanner(System.in);

String l = scan.nextLine();

- 使用split()和“”(空格)作为分隔符来获取每个值。

String[] arr = l.split(" ");

- 使用Integer.parseInt()转换回int

ArrayList<Integer> aList = ArrayList<Integer>();

for (String s : arr){

     aList.add(Integer.parseInt(s));

}