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

我想将所有数字拆分为字符串并转储为数字。怎么做到的?

像方程是:2x^4 - 45y^4

它应该在索引上以数字形式转储为:{2, 4, 45, 4};

4

2 回答 2

8

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

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

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

于 2013-10-09T18:46:14.223 回答
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排除了分隔符,这也删除了非数字。

于 2013-10-09T18:46:04.737 回答