Scala:查找列表中特定位置的某些元素

问题描述

我有一个不同元素的列表,其中一个元素是类型选项。如何确定该位置是否有元素?我尝试将其包装在Some()函数中,但是,这不会让我知道是否不存在。

我有一个Cookie订单的csv文件。我已经正确地分割了每一行(每个订单),创建了一个名为Order的案例类,但是列表中的第三个条目包含可选的附加注释。我需要知道它是否为空(无)或一些并显示注释;格式为some(“无论顺序是什么”)或无。

csv文件中的每个条目都以字符串形式输入到此函数中, def process(string entry): Order,我将其制成val行并使用.split(,)方法进行拆分,并放入列表中。

val line = entry.split(",").toList

列表仍然是字符串。订单的参数是string,string,Some [string]。

这是我尝试过的,但没有显示“无”。

val cookieOrder = Order(line(0),line(1),Some(line(2))

如果没有第三个元素,我对订单的预期结果是

"some string","some string",None

分割前的一行示例是

“”“牛奶,伦敦,”“”

谢谢

解决方法

所以假设这行看起来像这样:

val str = "milk,London," // Note the trailing white space.

然后您可以执行以下操作:

val line = str.trim.split(',')
// line: Array[String] = Array(milk,London)

val opt = line.lift(2)
// opt: Option[String] = None

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...