开发者

如何将Golang数组slice转为逗号分隔的string字符串

目录
  • golang数组slice转为逗号分隔的string字符串
  • go数组或切片转为字符串问题
    • 基本介绍
  • 总结

    Golang数组slice转为逗号分隔的string字符串

    如将:

    var a = []int{1,2,3,4}变为"[1,2,3,4]"。

    编程客栈硬核的办法就是建一个slice的临时中转:[]string 类型, 然后用strings.Join():

    var src = []int{1,2,3,4}
    var temp = make([]string, len(src))
    for k, v :=www.devze.com range src {
      temp[k] = fmt.Sprintf("%d", v)
    }
    var result = "[" + strings.Join(temp, ",") + "]"

    然后不久后想到了一个比较简便的方法json.Marshal():

    var a = []int{1,2,3,4}
    b, err := json.Marshal(a)
    if err != nil {
     panic(err)
    }
    var result = string(b)

    go数组或切片转为字符串问题

    基本介绍

    1)string底层是一个byte数组,因此string也可以进行切片处理,案例演示:

    package main
    import (
    	"fmt"
    )
    func main() {
    	// 1. string底层是一个byte数组,因此string也可以进行切片处理
    	str := "tianwanggaidihu"
    	// 使用切片获取到atguigu
    	slice := str[6:]
    	fmt.Println("slice=",slice)
    }

    2)string和切片在内存的形式,以"abcd"画出内存示意图

    如何将Golang数组slice转为逗号分隔的string字符串

    3)string是不可变的,也就是说不能通过 str[0]='z'方式来修改字符串

    如何将Golang数组slice转为逗号分隔的string字符串

     4)如果需要修改字符串,可以先将stringpython => []byte   或者 []rune  => 修改 => 重写转成string

    pacpythonkage main
    import (
    	"fmt"
    )
    func main() {
    	// 4. 如果需要修改字符串,可以先将string => []byte 或者 []rune => 修改 => 重写转成string
    	// 转成byte可以处理英文和数字,但是不能处理中文
    	// 原因是 []byte 是一个字节,而一个汉字是 3个字节,因此会出现乱码
    	// 解决办法是将string  转成 []rune 即可,因为 []rune是按字符处理,兼容汉字
    	// 1)转成 []byte
    	var str1 = "moerwubuhaha北京欢迎你"
    	slice1 := []byte(str1)
    	slice1[0] = 'z'
    	slice1[len(slice1) - 1] = 'z'
    	str1 = string(slice1)
    	fmt.Println("使用[]byte处理string:",str1)
    	// 2)转成 []rune
    	var str2 = "您好啊shenmeniuma北京欢迎你,天安门欢迎您"
    	slice2 := []rune(str2)
    	slice2[0android] = '牛'
    	str2 = string(slice2)
    	fmt.Println("使用[]rune处理string:",str2)
    }

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜