我使用以下正则表达式:“(?([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
哦,不,我不能,我想允许 - 但只有当它的一些 –