gpt4 book ai didi

java - 需要使用Java用逗号和空格分割字符数

转载 作者:行者123 更新时间:2023-12-01 09:13:49 25 4
gpt4 key购买 nike

嗨,我对 Java 比较陌生。我必须比较金额值 AED 555,439,972/年是否小于另一个金额。所以我尝试先使用代码进行拆分

public static void main(String[] args) {
String value= "AED 555,439,972 /yr";
String[] tokens = value.split("\b");
int[] numbers = new int[tokens.length];
for (int i = 0; i < tokens.length; i++) {
numbers[i] = Integer.parseInt(tokens[i]);
}
System.out.println(numbers);

}

但我在线程“main”java.lang.NumberFormatException 中遇到异常:对于输入字符串:“AED 555,439,972/yr”。

感谢有人能帮助我解决问题。

最佳答案

希望您需要从字符串中获取数值。

首先,使用以下命令删除所有非数字字符。

value.replaceAll("\\D", "")

\\D 代表非数字字符。一旦每个这样的字符都被替换为空字符串(这意味着这些字符被删除),请对其使用 Integer.parseInt 。 (如果值可能超出 Integer 的范围,请使用 Long.parseLong。)

在您的代码中,您尝试按单词字符结尾拆分字符串(这也没有正确完成;您需要将其转义为 \\b)。这将为您提供一个数组,其中包含在每个单词末尾分割字符串的结果(在 AED 之后、AED 之后的空格之后、前 3 位数字之后、第一个逗号之后等等..),之后您进行转换将结果数组的每个分量转换为整数,这在 AED 中会失败。

简而言之,以下就是您想要的:

Integer.parseInt(value.replaceAll("\\D", ""));

关于java - 需要使用Java用逗号和空格分割字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40731093/

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