我试图理解为什么我下面的正则表达式失败了。我试图在两侧检索一系列值,:
但我的代码总是失败else
。 range
来自这样的命令行参数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;
}