[英]Splitting string input into discrete numbers and operators
我正在尝试将像"-10 5 + 3 *"
这样的字符串拆分成组成部分以用于基本算术,同时保持运算符的完整性,例如不要将-10
与-
运算符和10
混淆。 我应该如何处理这个问题?
目前我正在做一个基于空格分隔符的简单拆分,并打算编写单独的方法来处理每个操作。 但是,这不考虑没有空格的输入:例如"11+1+1"
。 我已经探索了每个字符的定界,例如string.split("")
但在逻辑上遗漏了一些东西。
String[] simplifyCommand(String s) {
return s.split(" ");
//or s.split(""); for individual characters
}
您可以使用\b
字边界正则表达式锚将输入字符串拆分为数字和运算符:
"11+1+1".split("\\b");
上面的表达式会产生[11, +, 1, +, 1]
作为结果,因此您可以按原样遍历结果。
同样, "11+1+1".split("\\b")
会产生[-, 11, +, 1, +, 1]
作为结果。 这不应该使解释操作本身变得更加困难。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.