拆分字符串+ - / *并保留所有其他特殊字符

时间:2015-10-27 21:32:43

标签: java regex

嘿伙计们,我正在尝试拆分一个数学表达式的字符串。

例如 - 1.1234-345 + 43 / 23.546 * 34 我想拆分 - + / *并保留所有数字。

我试过这个:

String[] newString = "242342.4242+424-32.545".split("[+-//*]");

但它不起作用,它也分裂了。它最后给了我数组中的5个数字,它应该给我3个数字。

新字符串应如下所示:

newString[0] = 242342.4242
newstring[1] = 424
newString[2] = 32.545

2 个答案:

答案 0 :(得分:1)

    public static void main(String[] args) {
        // Using | in pattern
        // \\ for special character

        String[] newString = "242342.4242+424-32.545".split("\\+|-|\\*"); // +|-|*
        System.out.println(Arrays.toString(newString));

        // Output

        // [242342.4242, 424, 32.545]

        // In the real world. You need to handle Space too
        // so using this pattern
        // \\s*(\\+|-|\\*)\\s*

        String[] newString2 = "242342.4242 + 424 - 32.545".split("\\s*(\\+|-|\\*)\\s*");
        System.out.println(Arrays.toString(newString2));

        // Output

        // [242342.4242, 424, 32.545] - No spaces

    }

答案 1 :(得分:0)

public class test
{
    public static void main(String[] args)
    {
        String[] newString = "242342.4242+424-32.545".split("[-+*/]");
        for (String s : newString)
        {
            System.out.println(s);
        }
    }
}