我使用以下正則表達式:「(?([0-9] +) - ?)+」。我的正則表達式與某個輸入不匹配 - java
我試着看看兩個數字之間是否有負號。正則表達式應該允許在數字之前使用缺陷,但不能在數字之間使用。
我用下面的命令行輸入測試它:「4 6 8 2 5-3 4 3 9」,程序返回它期望返回的內容(true爲一個布爾值)。 另外,當命令行輸入是:「-4 6 8 2 5 -3 4 3 9」時,程序工作並將假返回到布爾值(預期)。但是,每當我輸入:「4 -6 8 2 4月5日至3日3月9日」,程序將顯示以下錯誤:
Exception in thread "main" java.lang.NumberFormatException: For input string: "5-3"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at Ex5.main(Ex5.java:32)
這意味着我的布爾是假的,我不知道爲什麼,因爲它應該返回true。
阿德里安,只是一個提示,而不是把所有的代碼中的問題,限制你的單片代碼的問題。例如:爲什麼正則表達式「(?([0-9] +) - ?)+」不匹配輸入‘4-6 8 2 4月5日至3日3月9日’ – Doleron
你能使用'布爾hasMinuses = listString.contains(‘ - ’)'如果是這樣,這將節省您的調試。正則表達式 – dave
哦,不,我不能,我想允許 - 但只有當它的一些 –