我有一个这样的字符串3x^2
我想提取第一个和第二个数字并将它们存储在一个数组中。如果它们不存在,则应将其视为1
。
编辑:
例如,在字符串x
中,第一个和第二个数字是1
或者在字符串3x
中,第二个数字是1.我认为现在应该很清楚。
答案 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
。