从 Kotlin 中的列表或哈希映射数组列表中拆分字符串

Posted

技术标签:

【中文标题】从 Kotlin 中的列表或哈希映射数组列表中拆分字符串【英文标题】:Split String from list or hash map array list in Kotlin 【发布时间】:2021-12-13 16:36:03 【问题描述】:

我在 Json 列表中有这个输出,我想在我的应用中使用这个列表的值

val dataOfTestToJson =  Gson().toJson(maps)
//I want this
E = 2 + 0 + 2 + 1
I = 2 + 0

//这是输出

["Q1":"E_2","Q2":"E_0","Q3":"E_2","Q4":"I_2","Q5":"I_0","Q6":"E_1"]

我想获取例如字符串中的 E 和 -2 将其用作公式中的数字。如何提取这些实体中的每一个并将它们放入变量(E 和 I)中?

【问题讨论】:

【参考方案1】:

我不完全确定这是否是您的意思。但是,如果您想将所有 E_ 值加到一个变量中,并将所有 I_ 加到另一个变量中,您可以使用正则表达式来完成,而无需制作任何列表、映射或其他对象,只需使用您得到的字符串。

例如这样:

val response = """["Q1":"E_2","Q2":"E_0","Q3":"E_2","Q4":"I_2","Q5":"I_0","Q6":"E_1"]"""
val eRegex = Regex("E_(\\d+)")
val iRegex = Regex("I_(\\d+)")
val e = eRegex.findAll(response).map  it.groupValues[1].toInt() .sum()
val i = iRegex.findAll(response).map  it.groupValues[1].toInt() .sum()

e 在这种情况下为 5,i 为 2

【讨论】:

非常感谢您让我开心..

以上是关于从 Kotlin 中的列表或哈希映射数组列表中拆分字符串的主要内容,如果未能解决你的问题,请参考以下文章

HashTable-哈希表/散列表

Kotlin 中的 Python 列表、集合和映射推导等价物是啥?

python映射字符串拆分列表

哈希表

哈希算法从原理到实战

在 Kotlin 中从 Spring 配置创建列表映射