将String转换为使用非数字字符分割的双精度数组

时间:2013-03-29 17:12:03

标签: java string

我知道如何分割带有特殊字符的字符串,如空格:

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;喜欢这个字符串:

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

3 个答案:

答案 0 :(得分:3)

尝试此算法Shunting-yard algorithm

  

分流码算法是一种解析数学的方法   中缀表示法中指定的表达式。

答案 1 :(得分:0)

您还可以先将可用表达式转换为Postfix表达式,然后对其进行评估。 Here是对它的解释。

答案 2 :(得分:-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