在括号中提取逗号分隔值

时间:2017-06-19 14:19:00

标签: java string file data-manipulation

我有一个以下格式的文本文件:

0 (1, 10), (0, 5), (3, 40)  
1 (2, 15), (1, 23), (2, 18), (4, 5), (3, 50)  
2 (3, 100)  

每行中的第一个数字用于特定目的。类似地,括号中的每个整数用于另一个特定目的。因此,我试图分别提取这些整数中的每一个。这就是我的尝试:

BufferedReader br = new BufferedReader(new FileReader("test.txt"));
String line = br.readLine();
while (line != null) {
     String[] separate = line.split(", ");
     for (int i = 0; i < patterns.length; i++) {
        String result = separate[i].replace("(", "").replace(")", "");
     }
}  

虽然这确实提取了每个整数,但括号中的整数与行中的第一个整数没有区别。此外,此解决方案不会分隔文件中的每一行 有人可以帮助我找到更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

看起来在你的情况下,整数是否在括号中并不重要。如果是这样,你可以这样做。

String [] separate = line.replaceAll("[()\\s]+", "").split(",");

上面的替换将替换[]中列出的任何符号的多个外观。在它之后你将有一个干净的逗号分隔字符串没有parens或空格。

单独的[0] 将指向该行中的第一个元素。