拆分表达式以浮动数字

时间:2014-10-31 12:27:48

标签: java regex

我有一个这样的字符串"2/-4+5.7*5*-7.9+3" 我想将它拆分为一个数组,使得元素只是浮点数的绝对值[2,4,5.7,5,7.9,3]

3 个答案:

答案 0 :(得分:2)

你可以尝试匹配而不是拆分。

\\d+(?:\\.\\d+)?

DEMO

根据一个或多个运算符( -*/+ )调整字符串将为您提供所需的输出

String test = "2/-4+5.7*5*-7.9+3";
System.out.println(Arrays.toString(test.split("[-/+*]+")));

<强>输出:

[2, 4, 5.7, 5, 7.9, 3]

答案 1 :(得分:0)

        String s = "2/-4+5.7*5*-7.9+3";
        Pattern p = Pattern.compile("[+-]?[0-9]+");
        Matcher m = p.matcher(s);
        int n1 = 0;
        int n2 = 0;

        while ( m.find() ) {
            n1++;
        }

        float[] array = new float[n1];

        while ( m.find() && n2 <= n1) {
            array[n2] = Float.parseFloat(s.substring(m.start(), m.end()));
            n2++;
        }

答案 2 :(得分:0)

"2/-4+5.7*5*-7.9+3".split(/[\/\-\+\*]{1,}/)

结果:[“2”,“4”,“5.7”,“5”,“7.9”,“3”]

另外,你必须parseFloat()每个项目以获得数值