我在txt中有数据:
1
2
3
4
5
6
7
8
如果我想在单独的ex中求和:1 + 2 + 3结果是6和4 + 5 + 6 ... n = 30
分隔列表表示用空行分隔的数字列表。例如,在上面的示例中,数字1 2 3
和4 5 6 7 8
用空行分隔。我想要前3个数字的总和,然后分别接下来的5个数字。
Scanner sc = new Scanner (new File("patch.txt");
while (sc.hasNextLine()) {
//sum each numbers
}
我该怎么办?使用扫描仪读取数据。
答案 0 :(得分:3)
Scanner sc= new Scanner (new File("patch.txt"));
int sum = 0;
while (/* Condition to ensure end of file: sc.hasNextLine or similar */)
{
String str = sc.nextLine (); // Read the line
if(str.isEmpty()) { // There was no number. You may want to add more checks for example check space only string, dash string etc
// Print separated sum
System.out.println ("Sum = " + sum);
sum = 0; // reset sum
} else {
// Update sum
sum += Integer.parseInt (str);
}
}
答案 1 :(得分:0)
试
Scanner sc= new Scanner (new File("patch.txt"));
int sum = 0;
while (sc.HasNextLine ())
{
//sum each numbers
String str = sc.nextLine ();
sum += Integer.parse (str);
}
答案 2 :(得分:0)
您可以执行以下操作。但是如果文件末尾有一个空行,则不需要在外面输出print语句。
Scanner sc = new Scanner(new File("patch.txt"));
int sum=0;
while(sc.hasNextLine()){
try{
sum +=Integer.parseInt(sc.nextLine());
}
catch(Exception e){
System.out.println(sum);
sum=0;
}
}
System.out.println(sum);
sc.close();
这样做,它遍历每一行,当它是一个整数时加上sum。当在空行抛出异常时,总和初始化为零。