我想了解为什么我的正则表达式失败。我试图在:
的两侧检索一系列值,但我的代码始终未能通过else
。 range
来自命令行arg,如java -jar myprogram.jar -R 50:100
。如何使用正则表达式从字符串解析数字
它是否失败,因为我传递一个字符串到matches()
并寻找整数?
这里是我的代码:
private int[] parseRangeResults(String range) {
int[] rangeResults = new int[2];
if(range.matches("\\d+:\\d+")) {
String[] numbers = range.split(":")
rangeResults[0] = Integer.parseInt(numbers[0]);
rangeResults[1] = Integer.parseInt(numbers[1]);
} else {
throw new Exception("Invalid Syntax.");
}
return rangeResults;
}
为什么使用'numbers [2]'而不是'numbers [1]',出于兴趣? –
你的样品'范围'是什么? (例如,它匹配我的“123:123”。) –
@JonSkeet我的错误,我认为':'被添加到字符串数组中。我从来没有看到代码的那部分看到失败:-P –