String Equation = input.nextLine();
String[] number = Equation.split("\d+");
我想将所有数字拆分为字符串并转储为数字。怎么做到的?
像方程是:2x^4 - 45y^4
它应该在索引上以数字形式转储为:{2, 4, 45, 4};
您可以拆分一个或多个非数字字符 - \\D+
:
String[] number = equation.split("\\D+");
在使用 Java 正则表达式时,您需要对\d
,\D
等进行双重转义。请遵循 Java 命名约定。您的变量应该命名为equation
,而不是Equation
。
我要做的是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
排除了分隔符,这也删除了非数字。