gpt4 book ai didi

java - 如何从字符串中获取数字值?

转载 作者:行者123 更新时间:2023-12-04 15:14:29 26 4
gpt4 key购买 nike

如何拆分字符串?

我有一个 String:

String s = "1+2*3(30+4/2-(10+2))*2+1";

Got 方法从 String 获取数字值:

private static DigitStack getNumber(String convert) {
String[] arr = convert.split("");
digitStack = new DigitStack();

try {
for (int i = 0; i < arr.length ; i++) {
while (arr[i].matches("\\d+")) {
digitStack.push(Double.valueOf(arr[i]));
i++;
}
}
}catch (Exception e){
e.printStackTrace();
}

return digitStack;

}

方法返回值:

1.0; 2.0; 3.0; [3.0  0.0]; 4.0; 2.0; [1.0  0.0]; 2.0; 2.0; 1.0;

预期输出:

   1.0; 2.0; 3.0; 30.0; 4.0; 2.0; 10.0; 2.0; 2.0; 1.0;

问题是方法对每个符号进行单独计数,以及数字 30 和 10。它转换为两个数字 [3.0 和 0.0] [1.0 和 0.0]

如何解决?

最佳答案

最简单的方法是将字符串拆分为非数字,即

String s = "1+2*3(30+4/2-(10+2))*2+1";
String[] arr = s.split("\\D+");

这将返回一个数组

[1, 2, 3, 30, 4, 2, 10, 2, 2, 1]

然后您可以对其进行迭代并将其转换为 double。

正如 Rohit 所指出的,如果您有带小数点的数字,或者如果您还想考虑负数,这种方法将不起作用。

关于java - 如何从字符串中获取数字值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64575524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com