arrays - Kotlin:字符串到数组到键值
问题描述
我正在尝试创建一个 key => value Hashmap。
首先,我有一个由<br />
. 然后,我用split()拆分它(独立获取每个字符串)。
然后,我需要用"="分割每个结果。第一部分是键(我需要它是一个字符串),第二部分是值(一个 int)
现在我有
val formules = objInput.getString(Constants.formules)
val hashmap = HashMap<String, Int>()
val resSplit = formules.split("<br />")
resSplit.forEach {
val splitFormule = it.split(" = ")
val key = splitFormule.elementAt(0)
val value = splitFormule.elementAt(1)
Log.i(TAG, "$key")
}
尝试显示值时出现此错误:
索引:1,尺寸:1
解决方案
请注意您的输入是否正确。空格是相关的。<br />
不同于<br/>
和=
不同于<space>=<space>
。假设您的输入如下所示:
foo = 3<br />bar = 5<br />baz = 9000
然后,您可以使用这个简单的表达式创建地图:
val map = formules
.splitToSequence ("<br />") // returns sequence of strings: [foo = 3, bar = 5, baz = 9000]
.map { it.split(" = ") } // returns list of lists: [[foo, 3 ], [bar, 5 ], [baz, 9000]]
.map { it[0] to it[1] } // return list of pairs: [(foo, 3), (bar, 5), (baz, 9000)]
.toMap() // creates a map from your pairs
推荐阅读
- html - Clearfix 无法在右侧显示配置文件
- substring - 回文置换子串
- c# - 在 C# 上如何正确等待线程数组的结束?
- r - 使用 rbindlist 和 lapply 堆叠多个 excel 输入
- sqlite - 使用 SQLite 窗口函数并创建最新的 SQLite 版本数据库
- java - 删除字符串中每个单词的所有重复项
- java - Quarkus Panache 实体上的 JAXB 注释导致 REST 调用失败
- permissions - 无法将文件从谷歌云存储桶复制到虚拟机实例
- c++ - Operator<< 不返回对象内容
- r - 取消选中框,但可以重新选中 R Shiny