2016-02-09 32 views
0

我想創建一個方法,它接收一個列表(從csv文件讀取)和一個字符串,並輸出包含該字符串的所有數據的列表。在scala中匹配字符串

數據例如:

"Joe, 14,1989" 
"John, 13,1999" 
"Mary, 10, 2000" 

我具備的功能是這樣的:

def name(info: List[List[String]], str: String): List[List[String]] = 
info.filter(lst =>lst.head.toString == str) 

但是,我得到的回報一個空列表。在scala中比較字符串的最佳方法是什麼?

+0

'info.head'應該是List(「joe」,「14」,「1989」)'? b/c是''joe「==」joe「'在scala中。 –

回答

2

既然你打電話給.head,這將只返回第一個元素等於str的列表。 (因爲這些項目已經是字符串,所以稱爲.toString也是多餘的。)

你想要的是info.filter(lst => lst.contains(str)),或者簡單地說是info.filter(_.contains(str))