我想了解爲什麼我的正則表達式失敗。我試圖在:
的兩側檢索一系列值,但我的代碼始終未能通過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 –