java从字符串中提取数字并求和怎么操作
问题描述:java从字符串中提取数字并求和怎么操作
推荐答案 本回答由问问达人推荐
在Java中,从字符串中提取数字并求和可以通过多种方法实现。下面是一个示例代码,展示了如何使用不同的方法提取数字并计算它们的总和:
public class SumOfNumbers {
public static void main(String[] args) {
String str = "abc123def456ghi789";
int sum = 0;
// 方法1: 正则表达式提取数字
String[] numbers = str.replaceAll("[^0-9]+", " ").trim().split(" ");
for (String number : numbers) {
sum += Integer.parseInt(number);
}
System.out.println("方法1: 正则表达式提取数字");
System.out.println("字符串中的数字为: " + Arrays.toString(numbers));
System.out.println("数字的总和为: " + sum);
// 方法2: 字符处理方法提取数字
sum = 0;
StringBuilder numberBuilder = new StringBuilder();
for (char c : str.toCharArray()) {
if (Character.isDigit(c)) {
numberBuilder.append(c);
} else if (numberBuilder.length() > 0) {
sum += Integer.parseInt(numberBuilder.toString());
numberBuilder.setLength(0);
}
}
if (numberBuilder.length() > 0) {
sum += Integer.parseInt(numberBuilder.toString());
}
System.out.println("方法2: 字符处理方法提取数字");
System.out.println("数字的总和为: " + sum);
// 方法3: 使用正则表达式和流式操作提取数字并求和
sum = Arrays.stream(numbers)
.mapToInt(Integer::parseInt)
.sum();
System.out.println("方法3: 使用正则表达式和流式操作提取数字并求和");
System.out.println("数字的总和为: " + sum);
}
}
在以上代码中,我们使用了三种不同的方法来提取字符串中的数字并计算它们的总和。
方法1使用正则表达式 replaceAll("[^0-9]+", " ") 替换非数字字符为空格,并使用 split(" ") 将字符串拆分为数字字符串数组。然后,我们遍历数组并使用 Integer.parseInt() 将每个数字字符串转换为整数,并将其加到总和中。
方法2使用字符处理方法遍历字符串中的每个字符。如果字符是数字,则将其添加到 numberBuilder 对象中。一旦遇到一个非数字字符,我们将 numberBuilder 中的数字字符串转换为整数,并将其加到总和中。
方法3使用正则表达式提取数字字符串,并使用流式操作将它们转换为整数,并使用 sum() 方法计算它们的总和。
以上代码演示了三种不同的方法来解决提取字符串中的数字并求和的问题。你可以根据实际情况选择适合的方法,并根据需要进行进一步的处理和调整。
查看其它两个剩余回答