String Equation = input.nextLine();
String[] number = Equation.split("\d+");
我想将所有数字分成字符串并转储到数字中。怎么做?
like equation is:2x ^ 4 - 45y ^ 4
它应该在索引号上转储为:{2,4,45,4};
答案 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
排除了分隔符,因此也会删除非数字。