示例如下:

package mainimport "fmt"func VersionOrdinal(version string) string {// ISO/IEC 14651:2011const maxByte = 1<<8 - 1vo := make([]byte, 0, len(version)+8)j := -1for i := 0; i < len(version); i++ {b := version[i]if '0' > b || b > '9' {vo = append(vo, b)j = -1continue}if j == -1 {vo = append(vo, 0x00)j = len(vo) - 1}if vo[j] == 1 && vo[j+1] == '0' {vo[j+1] = bcontinue}if vo[j]+1 > maxByte {panic("VersionOrdinal: invalid version")}vo = append(vo, b)vo[j]++}return string(vo)
}func main() {versions := []struct{ a, b string }{{"1.05.00.0156", "1.0.221.9289"},// Go versions{"1", "1.0.1"},{"1.0.1", "1.0.2"},{"1.0.2", "1.0.3"},{"1.0.3", "1.1"},{"1.1", "1.1.1"},{"1.1.1", "1.1.2"},{"1.1.2", "1.2"},}for _, version := range versions {a, b := VersionOrdinal(version.a), VersionOrdinal(version.b)switch {case a > b:fmt.Println(version.a, ">", version.b)case a < b:fmt.Println(version.a, "<", version.b)case a == b:fmt.Println(version.a, "=", version.b)}}
}

运行结果:

1.05.00.0156 > 1.0.221.9289
1 < 1.0.1
1.0.1 < 1.0.2
1.0.2 < 1.0.3
1.0.3 < 1.1
1.1 < 1.1.1
1.1.1 < 1.1.2
1.1.2 < 1.2

golang 比较字符串 版本号大小相关推荐

  1. 比较版本号大小c语言,比较两个版本字符串version1和version2

    8 # python中的列表可以直接比较,只要把输入的数字按照'.'分割后,换为整数列表即可. num = input().split() version1 = list(map(int, num[0 ...

  2. 项目版本号大小比较,找出最大版本号

    项目版本号大小比较 软件版本号格式一般为X.Y.Z( Major.Minor.Patch),X为主版本号,Y为次版本号,Z为修订号.例如:1.12.123. 最近在项目中碰到一个业务:需要从版本数组中 ...

  3. 编程实现一个比较任意两个软件版本号大小的函数 2018.11.01(更新)

    如 1.2.3a 和 1.2.4b 我写的方法,各位大大还有啥好的办法留言一下. /*** 这是个错误的方法,错误的错误的错误的错误的,某次面试面试官看我的博客说这个方法有问题,我回来思考了一下确实有 ...

  4. C语言 比较字符串的大小关系

    头文件 原型 说明 返回值 #include<stdio.h> int strcmp(const char *s1, const char *s2) 比较s1指向的字符串和s2指向的字符串 ...

  5. golang之字符串

    golang的字符串(string)有两种类型: 一种是byte类型,或者叫uint8类型,代表ASCII码的一个字符: 一种是rune类型,或者叫int32类型,代表UTF-8的一个字符,当需要处理 ...

  6. php 字符串的比较大小,PHP如何比较字符串的大小?

    在WEB项目开发中,经常需要确定两个或多个字符串之间的大小,但是,我们关看两个字符是不能确定两个字符串的大小的,那么怎么来确定两个或多个字符串的大小呢,本篇文章,就带你了解一下,怎么比较字符串的大小? ...

  7. Delphi中字符串比较大小 VS Oracle-SQL中字符串比较大小

    重点注意Delphi和Oracle-SQL中比较字符串时空字符串''的根本性的不同 Delphi中的字符串比较 Delphi中字符串比较大小的规则:对应位置的字符按照字符编码值逐个对比,直到遇到可以确 ...

  8. python 压缩字符串_python zlib - 压缩字符串的大小与香农熵

    我试图更好地理解压缩算法的输出 - 如zlib - 如何与一个人的理论预期相比较 . 所以我有几个问题 . (1)首先,我想检查一下我是否正确计算了压缩率 . 假设我想压缩1000个数组,我可以执行以 ...

  9. 截取字符串,计算字符串字节大小,选择文件夹,上传文件

    获取(.)点前一个字符 string s = "123_u.jpg"; string strKzm = s.Substring(s.LastIndexOf("." ...

最新文章

  1. Docker的安装和版本详细介绍
  2. 【视频】SQL Server 2008 R2 StreamInsight - 多源复杂事件处理
  3. 让IDA Pro输出能让gcc编译器直接编译的.s汇编文件
  4. HDU6092——Rikka with Subset 【dp】
  5. 什么是闪电网络节点_为什么以及如何计划闪电谈话
  6. 开发实验实训管理系统
  7. 杭电 1060 Leftmost Digit
  8. 为什么坐飞机时会耳痛?
  9. jsp引用带参数的js文件,例如 script src=a.js?ctxpath=${base
  10. 瑞星2009网络版-服务器端安装和配置
  11. MYSQL数学函数哪些事
  12. 【H∞控制】H无穷控制器的matlab仿真
  13. python获取他人的ip_python - 获取访问者的IP地址
  14. 实现win 10 电脑版微信双开
  15. 从年轻大学教师待遇说到大学教学质量
  16. vscode 提示 vetur can‘t find `tsconfig.json`的解决办法
  17. 计算机资源管理器功能,Windows资源管理器的作用 -电脑资料
  18. Leetcode-D35-数组-455. 分发饼干
  19. 职场回头草 是糖是毒药
  20. 全百科搜索采集器 可采集百度搜索网址/贴吧/哔哩哔哩/微博信息

热门文章

  1. [转]Windows CE 编程的十点忠告(by pdasky)
  2. Kong APIGW — OpenResty
  3. TCP滑动窗口(Sliding Window)原理
  4. NR 5G 非3GPP 接入到核心网络的安全性
  5. 运维-nginx +php 错误状态码说明
  6. 使用SpringMVC创建支持向下兼容的版本化的API接口
  7. c#如何读取相机手机的拍摄时间
  8. .Net 项目代码风格规范
  9. 原型继承与属性拷贝的混合应用
  10. dedecms 会员网站UID注册名转MID