首页 > 解决方案 > 与其他字符串和输出数组匹配的字符串

问题描述

我有一个要求,我有 2 个字符串,如下所示


val data1 = ("42881644070,13.04148,80.096043,32,2019-05-01 12:32:00,[32435381]#42881685433,13.057927,80.127096,45,2019-05-01 12:32:00,[32435383]#42881685434,13.057927,80.127096,35,2019-05-01 12:32:00,[32435384]")

val data2 = ("42881644070#43848058544#43847944680#43849252675#43849251662#43849943435#43850472762")

我想将数据 2 的值与数据 1 第一个项目进行比较,该项目是 id,项目之间的分隔符是 # 这里。此外,输出应该只是与数据 2 不匹配的项目。

这里的输出应该是 Array[String]

Array(42881685433,13.057927,80.127096,45,2019-05-01 12:32:00,[32435383], 42881685434,13.057927,80.127096,35,2019-05-01 12:32:00,[32435384])

标签: scala

解决方案


这是您可以执行的操作:

val data1 = "42881644070,13.04148,80.096043,32,2019-05-01 12:32:00,[32435381]#42881685433,13.057927,80.127096,45,2019-05-01 12:32:00,[32435383]#42881685434,13.057927,80.127096,35,2019-05-01 12:32:00,[32435384]"

val data2 = "42881644070#43848058544#43847944680#43849252675#43849251662#43849943435#43850472762"

val array1 = data1.split("#")
val array2 = data2.split("#")

val res = array1.filterNot(elem => array2.contains(elem.split(",").head))
println(res.mkString(","))
// Displays
// 42881685433,13.057927,80.127096,45,2019-05-01 12:32:00,[32435383],42881685434,13.057927,80.127096,35,2019-05-01 12:32:00,[32435384]

推荐阅读