首页 > 解决方案 > 在Scala中以功能方式比较两个版本?

问题描述

Scala 中是否有一种惯用的、功能性的方式来比较两个可能具有不同长度的虚线版本字符串?

例如:

1.0 == 1.0.0
1.2.4 > 1.2
1.10 > 1.2

Java 解决方案通常是非常命令式的)。

标签: scala

解决方案


有点相同,但没有递归:

 version1.split("\\.")
   .zipAll(version2.split("\\."), "0", "0")
   .find {case(a, b) => a != b }
   .fold(0) { case (a, b) => a.toInt - b.toInt }

另外,FWIW,我认为这是重复的,因为链接问题中接受的答案也很好地回答了这个问题。


推荐阅读