Преобразование строки Go в целочисленный массив с помощью разделителя пробелов: изучено несколько методов

В Go существует несколько способов преобразования строки в целочисленный массив с разделителем-пробелом. В этой статье рассматриваются несколько методов с примерами кода, чтобы продемонстрировать, как можно добиться такого преобразования. Независимо от того, новичок вы или опытный разработчик Go, вы найдете ценную информацию о различных подходах к решению этой проблемы.

Метод 1: использование пакетов strconv и strings

package main
import (
    "fmt"
    "strconv"
    "strings"
)
func main() {
    str := "1 2 3 4 5"
    strArray := strings.Split(str, " ")
    intArray := make([]int, len(strArray))
    for i, s := range strArray {
        num, _ := strconv.Atoi(s)
        intArray[i] = num
    }
    fmt.Println(intArray)
}

Метод 2. Использование пакетов fmt и strconv

package main
import (
    "fmt"
    "strconv"
)
func main() {
    str := "1 2 3 4 5"
    var num int
    intArray := []int{}
    for _, s := range str {
        if s == ' ' {
            intArray = append(intArray, num)
            num = 0
        } else {
            digit, _ := strconv.Atoi(string(s))
            num = num*10 + digit
        }
    }
    intArray = append(intArray, num)
    fmt.Println(intArray)
}

Метод 3. Использование регулярных выражений (пакет regexp)

package main
import (
    "fmt"
    "regexp"
    "strconv"
)
func main() {
    str := "1 2 3 4 5"
    re := regexp.MustCompile("\\d+")
    matches := re.FindAllString(str, -1)
    intArray := make([]int, len(matches))
    for i, match := range matches {
        num, _ := strconv.Atoi(match)
        intArray[i] = num
    }
    fmt.Println(intArray)
}

Метод 4. Использование функций strings.Fields и strconv.Atoi

package main
import (
    "fmt"
    "strconv"
    "strings"
)
func main() {
    str := "1 2 3 4 5"
    strArray := strings.Fields(str)
    intArray := make([]int, len(strArray))
    for i, s := range strArray {
        num, _ := strconv.Atoi(s)
        intArray[i] = num
    }
    fmt.Println(intArray)
}

В этой статье мы рассмотрели несколько методов преобразования строки Go в целочисленный массив с разделителем пробелов. Мы рассмотрели различные подходы, включая использование таких пакетов, как strconv, strings, fmt и regexp, каждый из которых имеет свои преимущества и недостатки. Понимая эти различные методы, вы можете выбрать наиболее подходящий метод для вашего конкретного случая использования. Преобразование строки в целочисленный массив — обычная задача в Go, и благодаря знаниям, полученным из этой статьи, вы будете хорошо подготовлены к ее эффективному решению.