为什么我不能在 groovy 闭包中使用字符串方法? - 没有方法调用的候选人

问题描述 投票:0回答:1

我有简单的 hashmap 并想操作它,但 IDE 无法识别这些方法。对 Groovy 完全陌生,所以不确定哪里出了问题。

    def percentages = [
        "x1" : "20%",
        "x2" : "30%",
        "x3" : "0.4",
        "x4" : "50%",
        "x5" : "0.6"]

    percentages.each {
    val ->
         if(val[2].endsWith("%")) {
        val[2].deleteCharAt(val.length()-1)
        println val
    }
}

string groovy closures
1个回答
1
投票

当您执行

percentages.each
时,您遍历地图并且每个元素都是
java.util.Map.Entry
。这可能是您需要的:

import java.util.Map.Entry

def percentages = [
    "x1": "20%",
    "x2": "30%",
    "x3": "0.4",
    "x4": "50%",
    "x5": "0.6"]

percentages.each { Entry<String, String> val ->
    if (val.value.endsWith("%")) {
        val.value = val.value.substring(0, val.value.length() - 1)
        println val
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.