nextInt()读入的是仅是数字,而换行符没有读入,
使用nextInt()的时候,读取一定是数值型的字符,然后就按换行符 接着使用nextLine(),它是读到行分隔符就结束,而行分隔符前已经没信息,所以没有读到任何可返回的信息。
import java.util.Scanner;
public class sum {
/**
* @param args
*/
public static void main(String[] args) {
int n=0;
String s1;
Scanner s=new Scanner(System.in);
n=s.nextInt();
//s1=s.nextLine();加这句与不加的差别很大
//System.out.println("n为:"+n);
int s2[]=new int[n] ;
for(int i=0;i<n;i++){
s1=s.nextLine();
s2[i]=getLineSum(s1);
}
for(int i=0;i<n;i++){
System.out.println(s2[i]);
}
}
public static int getLineSum(String strLine){
Scanner s=new Scanner(strLine);
int sum=0;
while(s.hasNextInt())
{
sum+=s.nextInt();
}
return sum;
}
}
在标红色的地方如果没有加
s1=s.nextLine();
结果为
2
1 3
0
4
加上以后的结果为
2
1 3
2 4
4
6
问题原因最开始已说明,对于这种简单的输入输出格式一定要注意