从文件中添加数字

时间:2013-11-11 01:24:30

标签: java file java.util.scanner

我有一个文本文件numbers.txt,其中有一些数字行,用逗号分隔(\n当然不可见):

1, 2, 3, 4, 5, \n
6, 7, 8, 9, 10, \n
11, 12, 13, 14, 15

我想阅读并加起来,以便整体结果为120 这是我的代码:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class App1 {

    int res;

    public App1() {
     Scanner sc = null;
        try {
            sc = new Scanner(new File("numbers.txt")).useDelimiter(",");
        } catch (FileNotFoundException ex) {
            System.err.println(ex);
        }
      while (sc.hasNextInt()) {
        res += sc.nextInt();
      }
        System.out.println("Result: " + res);
    }

    public static void main(String[] args) {
        App1 app = new App1();
    }
}

不幸的是我只得到第一个数字:

Result: 1

2 个答案:

答案 0 :(得分:3)

尝试使用useDelimiter("[,\\s]+")。目前,您只使用\p{javaWhitespace}+替换标准分隔符,,这意味着在找到第一个整数扫描程序后将

1,| 2, 3, 4, 5, \n
  ^here

所以下一个字符将是[space][digit]。由于空格不再是分隔符,并且绝对不是数字,因此hasNextInt()测试无法接受此数据。

答案 1 :(得分:2)

试试.useDelimiter("[,\\s]+");。如果您只使用分隔符(“,”),则下一个字符是空格,并且您不能在空格上使用hasNextInt()