我有一个文本文件:
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();
我做错了什么?
答案 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