全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  千锋问问

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() 方法计算它们的总和。

  以上代码演示了三种不同的方法来解决提取字符串中的数字并求和的问题。你可以根据实际情况选择适合的方法,并根据需要进行进一步的处理和调整。

查看其它两个剩余回答
在线咨询 免费试学 教程领取