弦方程分离

时间:2016-10-09 10:35:54

标签: java string

String Str = new String("(300+23)*(43-21)/(84+7)");
          System.out.println("Return Value :" );

          String[] a=Str.split(Str);


String a="("
String b="300"
String c="+"

我想将这个单个字符串转换为一个数组,如上所述给出输出,直到方程结束时使用split方法提出任何建议 上面的代码不适用于它

2 个答案:

答案 0 :(得分:1)

当您编写Str.split(Str);时,split函数的参数应该是您希望将较大的字符串分解为较小字符串数组的字符串。 例如,

String s = "this is a string";
String [] array = s.split(" ");

此处split函数的参数基本上只是一个空格,因此split函数会将s字符串分解为由“”spring分隔的部分,这将导致array具有以下内容值:{"this", "is", "a", "string"}

我认为这个例子是确凿的。您在代码中所做的基本上是尝试使用字符串本身将字符串分解为多个部分,这当然没有意义。

你不会只使用split函数找到你想要实现的目标的答案,因为没有好的字符串可以像一个用于分隔更大字符串的标记。

答案 1 :(得分:0)

您可以使用简单的正则表达式来实现您想要的效果,例如

public static void main(final String[] args) {
    final String string = "(300+23)*(43-21)/(84+7)";
    final String[] arr = string.split("(?<![\\d.])|(?![\\d.])");
    for (final String s : arr)
        System.out.println(s);
}

如果空格可以存在等,则必须进行一些修改,但适用于您的示例输入字符串。