0

我需要从格式文件中获取输入

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

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

4

3 回答 3

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 消除了这些标记。希望这可以帮助。

于 2012-09-17T19:21:20.027 回答
0

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

于 2012-09-13T09:26:01.503 回答
0

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

于 2012-09-13T09:28:21.957 回答