如何通过使用scala匹配字符串来获取列表元素?

时间:2014-11-11 10:01:49

标签: list scala

我有以下列表 -

List((name1,233,33),(name2,333,22),(name3,444,55),())

我有另一个字符串,我希望与列表匹配并从列表中获取匹配的元素。 列表中只有一个元素与给定的字符串匹配。

该列表可能包含一些空元素,如上面列表中的最后一个元素所示。

假设我正在加工字符串' name2'那么在列表中只会出现一次 我的预期输出是 -

List(name2,333,22)

如何使用scala找到匹配的列表元素?

2 个答案:

答案 0 :(得分:6)

.find(_._1 == name2)

会更好

答案 1 :(得分:4)

考虑元组列表上的collect,例如,

val a = List(("name1",233,33),("name2",333,22),("name3",444,55),())

然后

a collect {
  case v @ ("name2",_,_) => v
}

如果您只想要第一次出现,请使用collectFirst。此部分函数忽略不包含3个项目的元组。