Golang字符串转整数方法
在Golang中如何将字符串转换为整数?strconv包的Atoi和ParseInt函数有什么区别?哪种方法更高效?转换失败时该如何处理错误?请给出示例代码说明最佳实践。
2 回复
使用strconv.Atoi函数:
num, err := strconv.Atoi("123")
if err != nil {
// 处理错误
}
或使用strconv.ParseInt:
num, err := strconv.ParseInt("123", 10, 64)
更多关于Golang字符串转整数方法的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
在Golang中,将字符串转换为整数主要有以下几种方法:
1. strconv.Atoi() - 最常用
package main
import (
"fmt"
"strconv"
)
func main() {
str := "123"
num, err := strconv.Atoi(str)
if err != nil {
fmt.Println("转换错误:", err)
return
}
fmt.Printf("字符串 '%s' 转换为整数: %d\n", str, num)
}
2. strconv.ParseInt() - 支持进制和位宽
package main
import (
"fmt"
"strconv"
)
func main() {
// 十进制
str1 := "255"
num1, _ := strconv.ParseInt(str1, 10, 64)
// 十六进制
str2 := "FF"
num2, _ := strconv.ParseInt(str2, 16, 64)
// 二进制
str3 := "1010"
num3, _ := strconv.ParseInt(str3, 2, 64)
fmt.Printf("%s -> %d\n", str1, num1) // 255 -> 255
fmt.Printf("%s -> %d\n", str2, num2) // FF -> 255
fmt.Printf("%s -> %d\n", str3, num3) // 1010 -> 10
}
3. fmt.Sscanf() - 格式化扫描
package main
import "fmt"
func main() {
str := "456"
var num int
_, err := fmt.Sscanf(str, "%d", &num)
if err != nil {
fmt.Println("转换错误:", err)
return
}
fmt.Printf("转换结果: %d\n", num)
}
主要区别:
- strconv.Atoi():最简单,只支持十进制
- strconv.ParseInt():功能最全,支持任意进制和位宽
- fmt.Sscanf():适合复杂格式的字符串解析
推荐使用 strconv.Atoi() 进行常规的十进制字符串转整数操作,因为它简洁高效且易于使用。

