1

我知道如何用空格等​​特殊字符分割字符串:

String numbers = "22 14 10 8 70";
int [] n1 = new int [numbers.length()];
for(int n = 0; n < numbers.length(); n++) {
    n1[n] = Integer.parseInt(numbers.split(" ")[n]);
}

但我想用任何非数字(也包括负号和浮点)类型的字符来分割字符串;像这个字符串:

String numbers = "22+14/10*8-70";
4

3 回答 3

3

试试这个算法Shutting-yard algorithm

调车码算法是一种用于解析以中缀表示法指定的数学表达式的方法。

于 2013-03-29T17:24:25.140 回答
0

您还可以先将可用表达式转换为Postfix表达式,然后对其求值。是关于它的解释。

于 2013-03-29T17:35:48.877 回答
-1

String.split()可以拆分正则表达式字符串:

String numbers = "22+14/10*8-70";
String[] elements = numbers.split("[^0-9\\.]");
for(String e : elements)
{
    System.out.println("Element: " + e);
}

印刷:

Element: 22
Element: 14
Element: 10
Element: 8
Element: 70
于 2013-03-29T17:18:02.007 回答