从java中的String数组中拆分数字

时间:2013-10-09 18:44:41

标签: java regex string

String Equation = input.nextLine();
String[] number = Equation.split("\d+");

我想将所有数字分成字符串并转储到数字中。怎么做?

like equation is:2x ^ 4 - 45y ^ 4

它应该在索引号上转储为:{2,4,45,4};

2 个答案:

答案 0 :(得分:8)

您可以拆分一个或多个非数字字符 - \\D+

String[] number = equation.split("\\D+");

在使用Java正则表达式时,您需要双重转义\d\D,依此类推。请遵循Java命名约定。您的变量应命名为equation,而不是Equation

答案 1 :(得分:3)

我所做的是String.replaceAll所有带空格的非数字。然后通过空格String.split

package com.sandbox;


import java.util.Arrays;

public class Sandbox {
    public static void main(String[] args) {
        String input = "2x^4 - 45y^4";
        input = input.replaceAll("\\D", " ");
        String[] parts = input.split("\\W+");

        System.out.println(Arrays.toString(parts));
    }
}

这将打印“[2,4,45,4]”


现在我理解@ RohitJain的回答,似乎我包含了一个不必要的步骤。我想我会留下这个,因为它确实有效,但我推荐他的解决方案。他的解决方案分为所有非数字。由于split排除了分隔符,因此也会删除非数字。