Golang中如何将字符串转换为[]int?

Golang中如何将字符串转换为[]int? 有没有办法将像 1 2 3 4 5 这样的字符串转换为 []int

3 回复

是的。我会这样做:

  • 使用 strings.Fields 函数将字符串分割成 Go 语言中所称的“字段”。
  • 然后使用 strconv.Atoi 将每个字符串字段转换为整数(假设这些整数是十进制且能放入 int 类型中):
func main() {
    fmt.Println("hello world")
}

更多关于Golang中如何将字符串转换为[]int?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


你需要通过使用分隔符 (空格)分割文本,然后逐位转换来实现。

package main

import (
	"fmt"
	"strconv"
	"strings"
)

func splitToInts(str string) ([]int, error) {
	ints := []int{}

	for _, s := range strings.Split(str, " ") {
		i, err := strconv.Atoi(s)
		if err != nil {
			return []int{}, err
		}

		ints = append(ints, i)
	}

	return ints, nil
}

func main() {
	ints, err := splitToInts("1 2 3 4 5")
	fmt.Printf("%v, %w\n", ints, err)
}

在Golang中将字符串转换为 []int 可以通过以下方式实现:

package main

import (
	"fmt"
	"strconv"
	"strings"
)

func main() {
	str := "1 2 3 4 5"
	
	// 分割字符串
	strSlice := strings.Fields(str)
	
	// 创建int切片
	intSlice := make([]int, len(strSlice))
	
	// 转换每个元素
	for i, s := range strSlice {
		num, err := strconv.Atoi(s)
		if err != nil {
			// 处理转换错误
			panic(err)
		}
		intSlice[i] = num
	}
	
	fmt.Println(intSlice) // 输出: [1 2 3 4 5]
}

如果字符串使用其他分隔符(如逗号),可以使用 strings.Split()

str := "1,2,3,4,5"
strSlice := strings.Split(str, ",")

对于包含负数的字符串:

str := "-1 2 -3 4 5"
// 使用相同的转换逻辑

如果需要处理可能包含非数字字符的情况:

func stringToIntSlice(str string) ([]int, error) {
	strSlice := strings.Fields(str)
	intSlice := make([]int, 0, len(strSlice))
	
	for _, s := range strSlice {
		num, err := strconv.Atoi(s)
		if err != nil {
			return nil, err
		}
		intSlice = append(intSlice, num)
	}
	
	return intSlice, nil
}
回到顶部