在这个程序中,我将输入解析为整数,我似乎无法接受负数并尝试了一堆正则表达式。我可以通过删除&& ^来得到正整数没问题 - 它只是我遇到问题的负整数。
示例:
input = console.readLine("?> ").split("\\D+&&^-");
任何想法和我做错了什么?感谢您提前提供任何帮助。
示例输入: -7 * 4
输出: -7和4应该存储在一个字符串数组中。
答案 0 :(得分:3)
&&
不正则表达式中的“and”运算符。我想你打算使用[^0-9-]+
,对吧?
我建议匹配而不是拆分。但是,两者都不能轻易解决-12-34
的角落问题。拆分将为您提供单个不可解析的数字。与-?\d+
匹配将为您提供两个数字,其间没有任何内容(您可以将其视为默认值+
)。
答案 1 :(得分:0)
-\d*
应该会得到一个负整数。如果您需要更复杂的内容,例如十进制数字,请查看this link。