将字符串转换为HashMap的最简单方法

时间:2016-12-18 14:37:44

标签: parsing kotlin

如果我在字符串中有一些文字,如:

  

“ABC = 123,DEF = 456,GHI = 789”

如何在Kotlin中最简单,最短的代码中为它创建一个填充的HashMap<String,Int>对象?

2 个答案:

答案 0 :(得分:17)

我认为没有比这更简单的解决方案了:

val s = "abc=123,def=456,ghi=789"

val map = s.split(",").associate { 
    val (left, right) = it.split("=")
    left to right.toInt() 
}

或者,如果您只需要HashMap,请使用.associateTo(HashMap()) { ... }

一些细节:

答案 1 :(得分:0)

您可以使用Pair关键字将每个键/值映射到to。可以使用Pair扩展方法将toMap()的可迭代对象轻松映射到Map。

val s = "abc=123,def=456,ghi=789"
val output = s.split(",")
              .map { it.split("=") }
              .map { it.first() to it.last().toInt() }
              .toMap()