我正在尝试从JSON字符串中获取MetricId字段的最大值。但是,对于以下字符串,我得到了"java.lang.UnsupportedOperationException: empty.max"的错误提示:
[{"MetricName":"name1","DateParsed":"2019-11-20 05:39:00","MetricId":"7855","isValid":"true"},
{"MetricName":"name2","DateParsed":"2019-05-22 17:45:00","MetricId":"1295","isValid":"false"}]
以下是我实现的查找最大值的方法:
val metricIdRegex = """"MetricId"\s*:\s*(\d+)""".r
def maxMetricId(jsonString: String): String = {
metricIdRegex.findAllIn(jsonString).map({
case metricIdRegex(id) => id.toInt
}).max.toString
}
val maxId: String = maxMetricId(metricsString)
我期望得到"7855"作为最大指标ID
这个方法可能有什么问题呢?我怀疑是正则表达式的问题。
MetricId"\s*:\s*"(\d+)
中再添加一个"
。https://regex101.com/r/uJVVVh/1 - The fourth bird