【发布时间】:2018-05-09 09:24:45
【问题描述】:
如何转换这个String数组:
"2018-05-08T23:22:49Z"
"n/a"
"2018-05-07T16:37:00Z"
使用map、flatMap 或reduce 等高阶函数到日期数组?
我知道使用 forEach 可以做到这一点,但我有兴趣参与 Kotlin 高阶函数:
val stringArray
= mutableListOf("2018-05-08T23:22:49Z", "n/a", "2018-05-07T16:37:00Z")
val dateArray = mutableListOf<Date>()
stringArray.forEach {
try {
val date = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US)
.parse(it)
dateArray.add(date)
} catch (e: ParseException) {
//* Just prevents app from crash */
}
}
【问题讨论】:
-
你只需要将
filter取出“n/a”值,然后使用map,有什么问题? -
您是要将错误日期保留为空,还是将其删除?
-
@jrtapsell 我正在尝试删除错误的日期。考虑到给定示例,3 个元素的初始字符串数组应转换为 2 个元素的日期数组。 “n/a”应该被忽略,我有兴趣使用 Kotlin 高阶函数来完成这项任务。
-
@pwolaq 谢谢,这是选项。
标签: kotlin reduce higher-order-functions