当前位置: 首页 > news >正文

Golang 处理字符串与整型数值相互转换的最佳实践

文章目录

  • Golang 处理字符串与整型数值相互转换的最佳实践
    • LeetCode 165. 比较版本号
      • 思路
      • Golang 代码

Golang 处理字符串与整型数值相互转换的最佳实践

今天刷题的时候碰到了 「LeetCode 165. 比较版本号」问题,最开始我的处理方式与在 C++ 当中一样,使用.作为分隔符分段将每一个子字符串转换为整型数值,但后来发现 Golang 提供了 stringsstrconv 两个库函数可以帮助我们实现类似于 Python 的字符串处理与字符串与整型相互转换的体验。下面我们以这道题目为例进行实践。
在这里插入图片描述

LeetCode 165. 比较版本号

请添加图片描述

思路

就像刚才我提到的,最开始我的思路就是手动地将.作为分隔符,来完成字符串version的分割,我甚至实现了一个将version字符串转为 slice 的函数:

func version2Slice(version string) []int {values := []int{}bytes := []byte(version)currVal := 0for i := 0; i <= len(bytes); i ++ {if i == len(bytes) || bytes[i] == '.' {values = append(values, currVal)currVal = 0} else {if currVal == 0 && bytes[i] == '0' {continue} else {currVal = currVal * 10currVal += int(bytes[i] - '0')}}}return values
}

基于这个函数,再将长度不同的 slice 用0补齐即可完成版本号的比较,但是这样手工实现起来非常的麻烦,在 Golang 当中解这道题的最佳实践是直接使用库函数stringsstrconvstrings当中提供了split方法可以让我们根据提供的分割符将字符串转为[]string序列。然后直接使用strconvAtoi就可以将字符串转为相应的整型数值。

Golang 代码

func compareVersion(version1 string, version2 string) int {v1 := strings.Split(version1, ".")v2 := strings.Split(version2, ".")for i := 0; i < len(v1) || i < len(v2); i ++ {x, y := 0, 0if i < len(v1) {x, _ = strconv.Atoi(v1[i])}if i < len(v2) {y, _ = strconv.Atoi(v2[i])}if x > y {return 1}if x < y {return -1}}return 0
}

相关文章:

  • 【备忘】PHP web项目一般部署办法
  • AI LLM大模型逆向环境搭建radare2 + r2mcp + r2ghidra
  • 【设计模式】UML图与工厂模式
  • 提升开发思维的设计模式(上)
  • spring:使用注解@Configuration、@ComponentScan创建配置类(未完待续)
  • C语言:字符函数
  • 基于ssm的教学质量评估系统
  • SQL Server判断中文的高效方法
  • 使用docker compose部署netmaker打通内网
  • 基于Springboot的动态刷新定时任务
  • 工业数据互联新基建:三格电子 PLC 数据采集网关破解跨协议通信难题
  • 高精度算法详解:从原理到加减乘除的完整实现
  • Jmeter本身耗资源导致压测不上去解决方案
  • .NET Core 数据库连接字符串加密与解密
  • JDBC基础关键_002_JDBC 增删改
  • 平压印刷机设计原理与关键技术研究
  • 图像匹配 像素跟踪roma
  • 【Dify精讲】第9章:插件系统与扩展机制【知识卡片】
  • 【深入剖析】攻克 Java 并发的基石:Java 内存模型 (JMM) 原理与实践指南
  • 阳台光伏CT电表防逆流,ADL200N-CT/D16-WF相序诊断、快速响应,易安装
  • 做电影网站需要注意什么软件/在哪买网站链接
  • 怎样用网站做单笔外贸/seo基础培训
  • 网站空间商那个好/自助建站的优势
  • wordpress相似的nodejs/长春网站优化
  • 网站建设网站备案所需资料/苏州seo公司
  • 深圳网站建设开发公司/百度推广下载安装