使用多个分隔符从文件中提取int

时间:2013-09-06 17:05:02

标签: java java.util.scanner

我有一个文本文件:

  90,-5 ,, 37  ,  1  99
  0 -55,,,
  ,,,11

我需要将整数提取到数组中。 我一直在用这段代码来做这件事:

File file=new File("2.txt");
Scanner in=new Scanner(file);
in.useDelimiter(" *|,*|\\n");
int[] b=new int[20];
int i=0;
while(in.hasNextInt()){
  b[i]=in.nextInt();
  i++;  
              }
  in.close();

我做错了什么?

2 个答案:

答案 0 :(得分:0)

分隔符表达式与分隔符之间存在不匹配。在这种情况下,匹配 感兴趣的字符比使用分隔符更简单。预编译的Pattern可用于提高性能。

Pattern pattern = Pattern.compile("-?\\d+");
BufferedReader reader = new BufferedReader(new FileReader("2.txt"));
String line;

while ((line = reader.readLine()) != null) {
    Matcher m = pattern.matcher(line);
    while (m.find()) {
        System.out.println(m.group(0));
    }
}

答案 1 :(得分:0)

我认为您可能需要阅读有关模式的文档,因为现在快速刷新它看起来不像|是union运算符。另外,\\n不是字面反斜杠n,而不是换行符吗?

http://docs.oracle.com/javase/tutorial/essential/regex/index.html

Scanner