我正在做一个功课计算器,除了我的扫描仪,一切都能正常工作,因为当它接受一个负整数时,它不会将它视为负数,它只是将减号视为运算符,我希望它将其视为操作数的一部分:
String exp = "8+4*-12-4";
String[] temp = new String[exp.length()];
temp =exp.split("(?<=[-+*/])|(?=[-+*/])");这使得它在只有正整数的情况下是正确的。例如输入: 8+4*12- 4,输出:8,4,12,*,+,4,-
但是如果是负数,它就不能正确处理了!这就是我需要帮助的地方,提前谢谢。
发布于 2016-04-24 17:56:44
LinkedList <String>list= new LinkedList<String>();只获取字符串中的每个字符并将每个字符添加到结果列表中。您需要编写语法感知代码,而不是这样做。如果您可以坚持在所有标记之间使用空格,那么您可以在空格with, for example, String.split上拆分。如果没有,最简单的替代方法是“手动”遍历字符串中的字符,并以这种方式创建输出。
虽然我认为也可以使用具有非捕获正向先行的String.split来对运算符进行拆分,但在这种程度上解决正则表达式比在代码中解决问题要困难得多。
https://stackoverflow.com/questions/36821534
复制相似问题