当前位置: 首页 > 面试题库 >

在文本中查找数字并将其求和

帅博简
2023-03-14
问题内容

在这里寻求正则表达式专家。我有一个带有数字的字符串,例如

abc 2 de fdfg 3 4 fdfdfv juk  @  dfdfgd 45

我需要从这样的字符串中找到所有数字并将其加总。

我的Java代码如下:

public static void main(String[] args) {

    String source = " abc 2 de fdfg 3 4 fdfdfv juk  @  dfdfgd 45";

    Pattern pattern = Pattern.compile("[\\w*\\W*(\\d*)]+");
    Matcher matcher = pattern.matcher(source);

    if (matcher.matches()) {
        System.out.println("Matched");

            // For loop is not executed since groupCount is zero
            for (int i=0; i<matcher.groupCount(); i++) {
                String group = matcher.group(i);
                System.out.println(group);
            }
    } else {
        System.out.println("Didn't match");
    }
}

所以matcher.matches()返回true,因此我可以看到打印了“匹配”。但是,当我尝试获取期望的数字分组时,什么也没打印出来。

有人可以指点我正则表达式和分组部分有什么问题吗?


问题答案:

只需按组提取数字,而不必担心空格。

public static void main(String[] args) throws Exception {
    String source = " abc 2 de fdfg 3 4 fdfdfv juk  @  dfdfgd 45";

    // "\\d+" will get all of the digits in the String
    Pattern pattern = Pattern.compile("\\d+");
    Matcher matcher = pattern.matcher(source);

    int sum = 0;
    // Convert each find to an Integer and accumulate the total
    while (matcher.find()) {
        sum += Integer.parseInt(matcher.group());
    }
    System.out.println("Sum: " + sum);
}

结果:

总计:54



 类似资料:
  • 问题内容: 我想做的是使用jQuery在段落中查找一段文本,并添加一些CSS以使其变为粗体。我似乎无法弄清楚为什么这行不通: 动态地提取“ about_theresidency”中的文本,因此在加载窗口后执行该文本。 问题答案: 你可以用与: 我把它变成了一个lil’插件,在这里:

  • 问题内容: 我想做的是使用jQuery在一个段落中查找一段文本并添加一些CSS以使其变为粗体。我似乎无法弄清楚为什么这行不通: 动态地提取“ about_theresidency”中的文本,因此在加载窗口后执行该文本。 问题答案: 你可以用与: 我把它变成了一个lil’插件,在这里:

  • 问题内容: 我使用此命令查找具有给定模式的文件,然后将其重命名为其他文件 运行此命令时,我看到一些类似的输出 但是最后,当我运行时,我看到了旧文件名。 问题答案: 您正在回显’mv’命令,而不是实际执行它。改成:

  • 本文向大家介绍加载文本文件并查找文件中的字符数-JavaScript,包括了加载文本文件并查找文件中的字符数-JavaScript的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个data.txt文件,该文件与NodeJS文件位于同一目录中。假设该文件的内容是- 我们需要编写一个JavaScript函数,将此外部文本文件加载到我们的js文件中并返回此文件中的字符数。 示例 让我们为该函数编写

  • 问题内容: 好吧,这里的问题很简单。我正在研究一个简单的备份代码。除非文件中有空格,否则它工作正常。这就是我查找文件并将其添加到tar存档中的方式: 问题是文件名中有空格,因为tar认为它是文件夹。基本上,有没有一种方法可以在find的结果周围添加引号?还是其他解决方法? 问题答案: 用这个: 它会: 处理带有空格,换行符,前导破折号和其他趣味的文件 处理无限数量的文件 当您有大量文件时,不会像使

  • 问题内容: 在最近的几天里,我试图从SQL表中获取数据并将其放入文本框。 表名称:“检查”。 我正在使用的代码: 结果我什么也没得到。有人知道为什么吗?也许我没有正确调用SQL? 问题答案: 一些评论: 不要使用,仅指定您需要的字段 使用-更少的代码,保证处理 我假设这是一个测试程序,否则在循环中将其重置为无意义