首页 > 解决方案 > 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

标签: arraysstringkotlinhashmap

解决方案


请注意您的输入是否正确。空格是相关的。<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

推荐阅读