如果不为null,则Scala方式添加到List

Ala*_*sen 1 scala scala-collections

斯卡拉新手在这里......

使用getStLine*()方法在地址java对象上执行以下操作...会为返回的空字符串生成一个带空字符串的List.什么是Scala方式干净利落地不将空字符串添加到列表中.

val streets = List[String](addr.getStLine1, addr.getStLine2, addr.getStLine3)
Run Code Online (Sandbox Code Playgroud)

Kon*_*tin 5

看起来你明确地将字符串添加到列表中,我认为你不能轻易避免在没有自定义派生列表实现的情况下添加空字符串.另一方面,您可以在事后轻松过滤掉空字符串.

scala> val z = List("one", "", "three")
z: List[java.lang.String] = List(one, "", three)

scala> z.filter(p=> p!=null && !p.equals(""))
res2: List[java.lang.String] = List(one, three)
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一句[在Scala中你通常将字符串与`==`比较不像Java中那样](http://alvinalexander.com/scala/scala-compare-strings-with-equal-operator-method-not-equals). (5认同)