将典型的列表形式转换为Scala列表的另一种形式

时间:2017-05-10 18:13:48

标签: scala

我是Scala的初学者我有一个列表我希望将列表的一种形式转换为Scala中列表的另一种形式。任何帮助将不胜感激

输入

List("TyCd->HKT", "TyCd->KA1", "TyCd->1IF", "TyCd->FVT", "TyCd->VDT", "TyCd->VSD", "TyCd->T1S", "TyCd->T9T")

感知输出

List("HKT", "KA1", "1IF", "FVT", "VDT", "VSD", "T1S", "T9T")

2 个答案:

答案 0 :(得分:3)

如果您只想从每个元素中删除"TyCd->",请使用stripPrefix

list.map(_.stripPrefix("TyCd->"))

答案 1 :(得分:0)

val x = List("TyCd->HKT", "TyCd->KA1", "TyCd->1IF", "TyCd->FVT", "TyCd->VDT", "TyCd->VSD", "TyCd->T1S", "TyCd->T9T")

如果您不想硬编码TyCd,则可能还有其他选项可以执行此操作。

scala> x.map(_.split("->")(1))
res2: List[String] = List(HKT, KA1, 1IF, FVT, VDT, VSD, T1S, T9T)

scala> x.map(_.split("->").drop(1))
res3: List[Array[String]] = List(Array(HKT), Array(KA1), Array(1IF), Array(FVT), Array(VDT), Array(VSD), Array(T1S), Array(T9T))

scala> x.map(_.split("->").drop(1).head)
res4: List[String] = List(HKT, KA1, 1IF, FVT, VDT, VSD, T1S, T9T)

在我看来,这是最安全的方法

scala> x.map(_.split("->").drop(1).headOption).flatten
res6: List[String] = List(HKT, KA1, 1IF, FVT, VDT, VSD, T1S, T9T)

希望这有帮助。