0
下面我有原始字符串的,我想将它转换为列表或元组或地图列表清单,基本上我需要通过的foreach原始字符串列表元组
val rawStr = "(foo,bar), (foo1,bar1), (foo3,bar3)"
遍历我怎么会去它?
下面我有原始字符串的,我想将它转换为列表或元组或地图列表清单,基本上我需要通过的foreach原始字符串列表元组
val rawStr = "(foo,bar), (foo1,bar1), (foo3,bar3)"
遍历我怎么会去它?
分割使用任何(,)
,然后组串
rawStr.split(s"""[(|,|)]""").filterNot(s => s.isEmpty || s.trim.isEmpty)
.grouped(2)
.toList
.map(pair => (pair(0), pair(1))).toList
斯卡拉REPL
scala> val rawStr = "(foo,bar), (foo1,bar1), (foo3,bar3)"
rawStr: String = "(foo,bar), (foo1,bar1), (foo3,bar3)"
scala> rawStr.split(s"""[(|,|)]""").filterNot(s => s.isEmpty || s.trim.isEmpty).grouped(2).toList.map(pair => (pair(0), pair(1))).toList
res13: List[(String, String)] = List(("foo", "bar"), ("foo1", "bar1"), ("foo3", "bar3"))
这一个也可以处理无效输入:
"\\(([^,]+{1})\\s*,\\s*([^,]+{1})\\)".r
.findAllMatchIn(rawStr)
.map(m => m.group(1) -> m.group(2)).toMap
你可以给它
val rawStr = "(foo,bar,baz), (foo1,bar1), (foo3,bar3)"
或
val rawStr = "(foo), (foo1,bar1), (foo3,bar3)"
,它不会崩溃
这是真棒! –