Java通过格式化文件输入

时间:2012-09-13 09:20:24

标签: java parsing

我需要从格式

的文件中获取输入

2 (3,4)(5,6) 3 (6,5)(7,8)

我只想将整数值存储在某个变量中,我不想要括号和逗号,那么如何使用模式匹配来获取它呢?

3 个答案:

答案 0 :(得分:1)

我更喜欢String方法split,它允许使用正则表达式。下面是为文件中的每一行输入运行的一些示例代码,假设您已实例化一个名为contents类型为ArrayList< Integer>的实例变量:

public void readLine(String line) {
    String delimiters = "[ ,()]+"; // regular expression
    String[] tokens = line.split(delimiters);
    for (String token : tokens) {
        try {
            Integer i = Integer.parseInt(token); // convert String to Integer
            contents.add(i);
        } catch (NumberFormatException e) {
            // TODO: handle exception
        }
    }
}

split方法创建了一些额外的(空)标记,try / catch消除了这些标记。希望这会有所帮助。

答案 1 :(得分:0)

您可以使用String#replaceAll("[^0-9]", "")删除任何非数字字符,使用Integer.valueOf(String)获取整数。

答案 2 :(得分:0)

您可以使用java.util.Scanner直接从文件中读取整数,并使用Scanner.useDelimiter(Pattern)指定分隔符,其中分隔符将是正则表达式(例如"[,() ]{1,}")。 Scanner方法hasNextInt()nextInt()可用于读取整数。