ホームページ >バックエンド開発 >Golang >Golang 文字を整数に変換する効率的な方法の共有

Golang 文字を整数に変換する効率的な方法の共有

王林
王林オリジナル
2024-04-03 15:36:02689ブラウズ

Go 中将字符高效转换为整型的指南:使用 strconv.ParseInt() 函数,提供要转换的字符串和基数。使用 fmt.Scanf() 函数,指定格式化字符串以读取指定格式的数据。实战案例:使用 strconv.ParseInt() 逐行读取文件并提取整数值。

Golang 文字を整数に変換する効率的な方法の共有

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 包来逐行读取文件,然后使用 strconvfmt 将行中整数值转换为 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。