Golang 字符串转int

Golang 字符串转int

Golang 字符串转int

在 Golang 编程中,我们经常会遇到需要将字符串转换为整数的情况。在处理用户输入、文件读取等情形下,字符串转整数是一个常见的操作。本文将详细介绍如何在 Golang 中实现字符串转整数的操作。

库函数 strconv.Atoi()

Golang 提供了方便的库函数 strconv.Atoi() 来实现字符串转整数的操作。该函数的签名如下:

func Atoi(s string) (int, error)

其中,参数 s 是待转换的字符串,函数返回一个整数值和一个错误对象。如果转换成功,返回的整数值为转换后的整数,错误对象为 nil;如果转换失败,返回的整数值为 0,错误对象为相应的错误信息。

示例代码如下:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "123"
    num, err := strconv.Atoi(str)

    if err != nil {
        fmt.Println("转换失败:", err)
    } else {
        fmt.Println("转换成功:", num)
    }
}

运行上述代码,输出为:

转换成功: 123

自定义实现字符串转int

除了使用 strconv.Atoi() 函数外,我们还可以自己实现字符串转整数的方法。下面是一个自定义的实现方法:

package main

import (
    "fmt"
)

func StrToInt(s string) (int, error) {
    var num int
    var neg bool

    for i, c := range s {
        if i == 0 && c == '-' {
            neg = true
            continue
        }

        if c >= '0' && c <= '9' {
            num = num*10 + int(c-'0')
        } else {
            return 0, fmt.Errorf("非法字符:%c", c)
        }
    }

    if neg {
        num = -num
    }

    return num, nil
}

func main() {
    str := "456"
    num, err := StrToInt(str)

    if err != nil {
        fmt.Println("转换失败:", err)
    } else {
        fmt.Println("转换成功:", num)
    }
}

运行上述代码,输出为:

转换成功: 456

性能比较

在性能方面,使用 strconv.Atoi() 函数要比自定义实现的方法要快得多。因为 strconv.Atoi() 函数是经过优化的标准库函数,性能较好。在实际开发中,建议优先使用库函数,以提高代码的性能和稳定性。

总结:本文介绍了在 Golang 中字符串转整数的两种方法,分别是使用 strconv.Atoi() 函数和自定义实现方法。在实际开发中,可以根据具体情况选择合适的方法来实现字符串转整数的操作。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程