vb.net - 如何将数字从 2.1.0 增加到 2.1.1
问题描述
我正在为各种应用程序开发维护系统,但我遇到了一个算术问题。
对于现在是 2.1.0 的字符串,我想将 0.0.1 添加到 2.1.0,所以它将是 2.1.1。我可以使用什么算法?
解决方案
您需要遍历各个部分(由点分隔),将它们从字符串转换为整数,将增量添加到版本中,然后将这些部分重新组合成一个字符串。
有很多方法可以编码,例如:
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 类,它有点繁琐:
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)
推荐阅读
- python - 用谷歌新闻抓取报纸文章标题
- python - 如何查找系列中的所有字符串 - 数据科学
- electron - Electron + Angular:录制时切换麦克风
- c - 在搅拌机的 voronoi.c 文件中,变量 float co[2] 是什么?
- mongodb - MongoDB:WriteConflict 错误:此操作与另一个操作冲突。请重试您的操作或多文档交易
- python - 为什么我没有取回正确的值?
- haskell - 程序员从范畴论理解双函子 - Ch. 8
- reactjs - 打开和关闭 div 会产生随机结果
- performance - 如何在powershell中测量命令的内存使用情况
- android - 不频繁的 Handler.post 导致大量丢帧和崩溃