Java 如何逐行扫描输入整数?

Java 如何逐行扫描输入整数?,java,input,Java,Input,我们想写一个程序来解两个“Ax2+Bx+C=0”形式的方程 当方程的系数Ax2+Bx+C=0时,每个方程输入一行,它可能如下所示: 2 3 // linear equation when the coefficient for the term x2 is zero 4 5 6 // quadratic equation nextInt()不会告诉我们4是第一行的第三个数字还是第二行的第一个数字。也就是说,下面的输入将返回完全相同的信息 2 3 4

我们想写一个程序来解两个
“Ax2+Bx+C=0”
形式的方程

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

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
也没有区别


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

使用Scanner的
nextLine()
一次获取每一行,然后使用
String#split(“”)
以正确的顺序获取各个标记。通过获取返回数组的长度,您可以很容易地找出存在多少令牌。当然,您需要解析通过
Integer.parseInt(…)
返回的令牌字符串,使用Scanner的
nextLine()
一次获取每一行,然后使用
String#split(“”
以正确的顺序获取各个令牌。通过获取返回数组的长度,您可以很容易地找出存在多少令牌。当然,您需要解析通过
Integer.parseInt(…)

-使用Scanner的
nextLine()
方法返回的令牌字符串

例如:

Scanner scan = new Scanner(System.in);

String l = scan.nextLine();
-使用带“”(空格)的split()作为delimeter来获取每个值

String[] arr = l.split(" ");
-使用
Integer.parseInt()
将其转换回int

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

for (String s : arr){

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

}
ArrayList aList=ArrayList();
用于(字符串s:arr){
aList.add(Integer.parseInt);
}

-使用扫描仪的
nextLine()
方法

例如:

Scanner scan = new Scanner(System.in);

String l = scan.nextLine();
-使用带“”(空格)的split()作为delimeter来获取每个值

String[] arr = l.split(" ");
-使用
Integer.parseInt()
将其转换回int

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

for (String s : arr){

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

}
ArrayList aList=ArrayList();
用于(字符串s:arr){
aList.add(Integer.parseInt);
}

或者您可以在该字符串上使用扫描仪too@Thikan:是的,是的!在使用完每个扫描器后,一定要关闭它,以免耗尽资源。多谢大家,我认为最优雅的方法是在字符串上使用扫描器,这将更容易!或者你可以用扫描器扫描那根线too@Thikan:是的,是的!在使用完每个扫描器后,一定要关闭它,以免耗尽资源。多谢大家,我认为最优雅的方法是在字符串上使用扫描器,这将更容易!