【发布时间】:2010-09-03 02:47:49
【问题描述】:
例如,来自以下文件:
姓名、姓氏、电子邮件 约翰,史密斯,john.smith@hotmail.com 南希,史密斯,nancy.smith@gmail.com Jane,Doe,jane.doe@aol.com John,Doe,john.doe@yahoo.com我如何获得 John Doe 的电子邮件地址?
我现在使用以下代码,但现在只能指定一个关键字段:
val src = Source.fromFile(file)
val iter = src.getLines().drop(1).map(_.split(","))
var quote = ""
iter.find( _(1) == "Doe" ) foreach (a => println(a(2)))
src.close()
我试过写“iter.find( _(0) == "John" && _(1) == "Doe" )",但这会引发一个错误,指出只需要一个参数(包含将条件放入额外的一对括号没有帮助)。
【问题讨论】:
-
如果这真的是一个 CSV 文件,使用 StringOps.split(",") 是错误的,并且不处理逗号 (,) 和/或双引号 (" ) 是嵌入值的一部分。我刚刚在 StackOverflow 的回答中解决了这个问题:stackoverflow.com/a/32488453/501113