Groovy -比较百分比值

mhd8tkvw  于 2022-11-01  发布在  其他
关注(0)|答案(3)|浏览(229)

我有这样的清单:

def list = ['100%', '25%', '80%', '1%', '100%', '12%', '100%', '75%', '20%', '100%']

我想用这段代码:

for (i in list){
    if (i < 90){
       println 'failed'
    }
}

如何删除这些百分比,以获得整数值,以便我可以做一个比较?

des4xlb0

des4xlb01#

简单的道:

def list = ['100%', '25%', '80%', '1%', '100%', '12%', ]

list = list.collect{ ( it - '%' ).toInteger() }
// or
list = list*.minus( '%' )*.toInteger()

assert Integer == list*.getClass().unique().first()
uttx8gqw

uttx8gqw2#

定义列表= [100%、25%、80%、1%、100%、12%、100%、75%、20%、100%]
这不是有效的Groovy代码。
你可以做这样的事...

def list = [1.0, .25, .80, .01, 1.0, .12, 1.0, .75, .20, 1.0]

list.sort()

你也可以这样做...

def list = ['100%', '25%', '80%', '1%', '100%', '12%', '100%', '75%', '20%', '100%']

def result = list.collect { it[0..-2].toInteger() }.sort()
pengsaosao

pengsaosao3#

您可以尝试以下操作:

def list = ['100%', '25%', '80%', '1%', '100%', '12%', '100%', '75%', '20%', '100%']
list = list.stream()
    .map{ row -> row.replace("%", "").toInteger()}
    .collect(Collectors.toList())

相关问题