从java中的字符串中提取数字

时间:2016-03-10 08:29:14

标签: java arrays regex string split

我有一个这样的字符串3x^2我想提取第一个和第二个数字并将它们存储在一个数组中。如果它们不存在,则应将其视为1

编辑: 例如,在字符串x中,第一个和第二个数字是1 或者在字符串3x中,第二个数字是1.我认为现在应该很清楚。

2 个答案:

答案 0 :(得分:1)

如果数字总是以x ^分隔,则只需使用此分隔符

拆分字符串
String[] splitted = "3x^2".split("x\\^");

答案 1 :(得分:1)

只需使用正则表达式获取数字:

String str = "3x^2";
String pattern = "(\\d+)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(str);
ArrayList<Integer> numbers = new ArrayList<>();

使用Matcher查找所有数字并将其添加到ArrayList。不要忘记将它们转换为int,因为m.group()会返回String

while (m.find()) {
   numbers.add(Integer.parseInt(m.group()));
}

如果您的公式不包含第二个数字,请添加您想要的默认项目。

if (numbers.size<2) {
   numbers.add(1);
}

最后打印出来:

for (int i: numbers) {
   System.out.print(i + " ");
}

3x^2的输出为3 2

对于8x,它是8 1