Go 中将字符高效转换为整型的指南:使用 strconv.ParseInt() 函数,提供要转换的字符串和基数。使用 fmt.Scanf() 函数,指定格式化字符串以读取指定格式的数据。实战案例:使用 strconv.ParseInt() 逐行读取文件并提取整数值。
Go 中高效字符转整型的指南
在 Go 中,将字符转换为整型是常见任务。虽然有几种方法可以实现,但选择一种高效且易于实施的方法非常重要。
strconv
strconv
包提供了一个名为 ParseInt
的函数,可用于将字符串转换为 int64
。此函数接受要转换的字符串和要使用的基数。
import ( "strconv" ) func main() { str := "123" // 将字符串转换为 int64 num, err := strconv.ParseInt(str, 10, 64) if err != nil { // 处理错误 } fmt.Println(num) // 输出:123 }
fmt
fmt
包还提供了 Scanf
函数,它可以从字符串中读取指定格式的数据。
import ( "fmt" ) func main() { str := "123" var num int64 _, err := fmt.Scanf(str, "%d", &num) if err != nil { // 处理错误 } fmt.Println(num) // 输出:123 }
实战案例
假设我们有一个包含单词和整数值的文件,并且我们希望将整数值提取到 slice 中:
apple 1 banana 2 cherry 3
我们可以使用 bufio
包来逐行读取文件,然后使用 strconv
或 fmt
将行中整数值转换为 int
:
package main import ( "bufio" "fmt" "os" "strconv" ) func main() { f, err := os.Open("values.txt") if err != nil { // 处理错误 } defer f.Close() var values []int scanner := bufio.NewScanner(f) for scanner.Scan() { line := scanner.Text() parts := strings.Split(line, " ") if len(parts) == 2 { num, err := strconv.ParseInt(parts[1], 10, 32) if err != nil { // 处理错误 } values = append(values, int(num)) } } if err := scanner.Err(); err != nil { // 处理错误 } fmt.Println(values) // 输出:[1 2 3] }
以上是Golang字符转整型的高效方法分享的详细内容。更多信息请关注PHP中文网其他相关文章!