我需要从格式
的文件中获取输入2 (3,4)(5,6) 3 (6,5)(7,8)
我只想将整数值存储在某个变量中,我不想要括号和逗号,那么如何使用模式匹配来获取它呢?
答案 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()
可用于读取整数。