我正在为各种应用程序开发维护系统,但遇到了算术问题。
对于现在是2.1.0的字符串,我想将0.0.1添加到2.1.0,所以它将是2.1.1。我可以使用哪种算法?
答案 0 :(得分:0)
您需要遍历各个部分(用点分隔),将它们从字符串转换为整数,将增量添加到版本中,然后将这些部分重新组合成字符串。
有很多编码方法,例如:
Dim s = "2.1.0"
Dim t = "0.0.1"
Dim n = String.Join(".", s.Split("."c).Zip(t.Split("."c), Function(a, b) CInt(a) + CInt(b)))
Console.WriteLine(n)
输出字符串
2.1.1
或者,如果您想使用Version class,则更麻烦一些:
Dim s = "2.1.0"
Dim t = "0.0.1"
Dim v = Version.Parse(s)
Dim inc = Version.Parse(t)
Dim maj = v.Major + inc.Major
Dim min = v.Minor + inc.Minor
Dim build = If(v.Build >= 0 OrElse inc.Build >= 0, Math.Max(v.Build, 0) + Math.Max(inc.Build, 0), -1)
Dim rev = If(v.Revision >= 0 OrElse inc.Revision >= 0, Math.Max(v.Revision, 0) + Math.Max(inc.Revision, 0), -1)
Dim n As Version
If rev >= 0 Then
n = New Version(maj, min, build, rev)
ElseIf build >= 0 Then
n = New Version(maj, min, build)
Else
n = New Version(maj, min)
End If
Console.WriteLine(n)