我想分割一个多项式,如:
2x^7+x^2+3x-9
进入每个术语(2x ^ 7,x ^ 2,3x,9)
我已经考虑过使用String.split()了,但是如何让它不止一个参数呢?
答案 0 :(得分:7)
split
需要regular expression,所以你可以这样做:
String[] terms = myString.split("[-+]");
当它遇到+或 - 时会分裂。
编辑请注意,正如Michael Borgwardt所说,当你像这样拆分时,你无法分辨哪个运算符(+或 - )是分隔符。如果这对您的使用很重要,您应该按照他的建议使用StringTokenizer
。 (如果您正在尝试编写数学表达式解析器,但这些都不会有太大帮助。)
答案 1 :(得分:6)
这听起来像是StringTokenizer类的完美应用程序:
StringTokenizer st = new StringTokenizer("2x^7+x^2+3x-9", "+-", true);
将返回令牌(“2x ^ 7”,“+”,“x ^ 2”,“+”,“3x”,“ - ”,“9”) - 你需要标志才能满有关多项式的信息。如果没有,请不要使用laster构造函数参数。
答案 2 :(得分:2)
String.split
接受正则表达式,因此请尝试split("[-+]")
。