Maison > développement back-end > Golang > Partage de méthodes efficaces pour convertir les caractères Golang en entiers

Partage de méthodes efficaces pour convertir les caractères Golang en entiers

王林
Libérer: 2024-04-03 15:36:02
original
688 Les gens l'ont consulté

Directives pour une conversion efficace de caractères en entiers dans Go : utilisez la fonction strconv.ParseInt(), fournissant la chaîne à convertir et la base. Utilisez la fonction fmt.Scanf() pour spécifier une chaîne de format afin de lire les données au format spécifié. Cas pratique : Utilisez strconv.ParseInt() pour lire le fichier ligne par ligne et extraire la valeur entière.

Partage de méthodes efficaces pour convertir les caractères Golang en entiers

Guide pour une conversion efficace de caractères en entier dans Go

Dans Go, la conversion de caractères en entier est une tâche courante. Bien qu’il existe plusieurs façons de procéder, il est important d’en choisir une qui soit efficace et facile à mettre en œuvre.

strconv

Le package strconv fournit une fonction appelée ParseInt qui peut être utilisée pour convertir une chaîne en int64. Cette fonction accepte la chaîne à convertir et la base à utiliser. strconv 包提供了一个名为 ParseInt 的函数,可用于将字符串转换为 int64。此函数接受要转换的字符串和要使用的基数。

import (
    "strconv"
)

func main() {
    str := "123"

    // 将字符串转换为 int64
    num, err := strconv.ParseInt(str, 10, 64)
    if err != nil {
        // 处理错误
    }

    fmt.Println(num) // 输出:123
}
Copier après la connexion

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
}
Copier après la connexion

实战案例

假设我们有一个包含单词和整数值的文件,并且我们希望将整数值提取到 slice 中:

apple 1
banana 2
cherry 3
Copier après la connexion

我们可以使用 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]
}
Copier après la connexion
🎜fmt🎜🎜🎜 Le package fmt fournit également la fonction Scanf, qui peut lire des données dans un format spécifié à partir d'une chaîne. 🎜rrreee🎜🎜Exemple pratique🎜🎜🎜Supposons que nous ayons un fichier contenant des mots et des valeurs entières, et que nous souhaitions extraire les valeurs entières dans une tranche : 🎜rrreee🎜Nous pouvons utiliser le package bufio pour le faire ligne par ligne Lisez le fichier et convertissez les valeurs entières de la ligne en int en utilisant strconv ou fmt : 🎜rrreee

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal