java - 计算字符列表中的两位数

标签 java groovy

我正在编写一个 groovy 程序。我有如下输出

red 5green 5blue 10white 15

我想总结输出中的数字。总和为 35

我写了下面的逻辑,但是程序返回了 17,这是正确的,因为下面的逻辑考虑了数字。

你能指导我如何让程序理解两位数吗?以便我得到正确的金额?

for (int i =0; i < output.length(); i++)
    {
        {
            sum=sum+Character.getNumericValue(grps.charAt(i))
        }
    }

谢谢

最佳答案

因为你也标记了 [groovy]:

您可以使用正则表达式 /\d+/“查找”字符串中的所有数字字符串,将它们全部转换为数字,最后将它们sum()。例如

def sumNumberStrings(s) {
    s.findAll(/\d+/)*.toLong().sum()
}
assert 35==sumNumberStrings("red 5green 5blue 10white 15")

关于java - 计算字符列表中的两位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53688353/

相关文章:

java - Google App Engine,Java 数据存储区查询 : How to do SQL Like Statement?

java - 使用 JUnit assertEquals 的自定义异常消息?

java - Groovy 中的 Html 吞吐

java - 用于生成 Groovy 源文件的 Java/Groovy API

java - 从 Jasper Reports 生成的 PDF 中的 SVG 标记

java - 合并排序与选择排序

java - Spring Integration - 外部化 JDBC 查询

grails - 找不到Grails项目lib目录中的jar文件

groovy - Groovy 中数组名称前面有星号?

java - 在 mongodb 中检索下 N 条记录