【发布时间】:2018-07-23 11:45:09
【问题描述】:
当我尝试删除列表中的空字符串时,为什么这些操作都不起作用?
这是我的清单:
(yuhindmklwm00409219,958193628,0305delete,2700)
(yuhindmklwm00409219,958193628,0305delete,800)
(yuhindmklwm00409219,959262446,0219delete,62)
()
(yuhindmklwm00437293,752013801,0220delete,2700)
()
()
()
(yuhindmklwm00437293,85382,0126delete,500)
()
(yuhindmklwm00437293,863056514,0326delete,-2700)
(yuhindmklwm00437293,863056514,0326delete,2700)
()
()
()
()
()
(yuhindmklwm00437293,85258,0313delete,1000)
(yuhindmklwm00437293,85012,0311delete,1000)
(yuhindmklwm00437293,85718,0311delete,2700)
()
()
()
()
()
()
()
(yuhindmklwm00437293,744622574,0322delete,90)
(yuhindmklwm00437293,83704,0215delete,17)
()
()
(yuhindmklwm00437293,85253,0331delete,-2700)
(yuhindmklwm00437293,85253,0331delete,2700)
()
()
()
()
()
()
()
()
(yuhindmklwm00437293,752013801,0305delete,2700)
(yuhindmklwm00437293,33165,0315delete,1000)
(yuhindmklwm00437293,85018,0319delete,100)
(yuhindmklwm00437293,85018,0219delete,100)
(yuhindmklwm00437293,85018,0118delete,100)
(yuhindmklwm00437293,90265,0312delete,6)
(yuhindmklwm00437293,02465,0312delete,25)
(yuhindmklwm00437293,857164939,0313delete,15)
(yuhindmklwm00437293,22102,0313delete,4)
(yuhindmklwm00437293,55423,0313delete,100)
(yuhindmklwm00437293,02465,0314delete,1)
(yuhindmklwm00437293,90265,0312delete,1)
(yuhindmklwm00437293,93108,0315delete,25)
(yuhindmklwm00437293,220432304,0315delete,35)
(yuhindmklwm00437293,701211570,0315delete,35)
(yuhindmklwm00437293,28801,0315delete,10)
(yuhindmklwm00437293,93108,0211delete,3)
(yuhindmklwm00437293,93108,02)
这是列表类型: List[String] = List((yuhindmklwm00437293,93108,02)..........))
我试过过滤器:
outputList1.filter(_.isNotNull).size
和
outputList1.map(record => if (record.size>3) record) else None)
这两种方法都无法删除空字符串。两者的列表大小保持不变
【问题讨论】:
-
outputList1.filter(_.nonEmpty)一个空的String,即"",与null不同,None与String的类型不同。 -
嗨 @jwvh 我试过 null 对我不起作用,
outputList1.filter(_ != null).size给出相同的大小 -
我只是评论说
null与""不同,所以null测试不会找到空字符串。 -
是的,但我无法理解,即使这不起作用
outputList1.map(record => if (record.size>3) record else None),因为我只是忽略任何小于 3 的字符串 -
None与String的类型不同。其结果将是Strings(大于 3 个字符)和Nones 的混合集合,这不是您想要的。试试filter(_.length > 3)。
标签: scala list collections