我需要从格式文件中获取输入
2 (3,4) (5,6) 3 (6,5) (7,8)
我只想将整数值存储在某个变量中,我不想要括号和逗号,那么如何使用模式匹配来获得它?
我更喜欢 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 消除了这些标记。希望这可以帮助。
您可以使用String#replaceAll("[^0-9]", "")
删除任何非数字字符并Integer.valueOf(String)
获取整数。
您可以使用 直接从文件中读取整数java.util.Scanner
并使用 指定分隔符Scanner.useDelimiter(Pattern)
,其中分隔符将是正则表达式("[,() ]{1,}"
例如)。Scanner
方法hasNextInt()
和可nextInt()
用于读取整数。