Conversion between go arrays and strings

First, how to convert a string to an array (slice)

Create an array:

var endpoint = []string{"0.0.0.0:2379"}  //直接初始化数组
//数组 <<= string
IPAddresses := []string{leftIP}

Write directly into the empty array:

 etcd :="sdfsdferf"
 stringarr := make([]string, 0)      //创建空数组
 stringarr = append(stringarr, etcd)
 /*stringarr = append(stringarr, "456")*/
 println("*****")
 for _, str := range stringarr {
   println(str)
 }
 println("*****")

2.how to convert an array to a string

Convert an element in the array directly to a string

 arr := make([]string, 0) 
 arr[0] = "sfsdfsdf"
 string := arr[0]  //直接将该数组的一个元素,赋值给字符串
 fmt.Printf("====>:%s\n", string)

Convert all the data in the array to a string

func arrayToString(arr []string) string {
   var result string
   for _, i := range arr {  //遍历数组中所有元素追加成string
    	result += i
   }
   return result
}

3.String processing

ports := strings.Replace(ports, ",", "", 1)
字符串替换 替换第一个匹配的字符串//可用于去掉第一个指定的字符串

4.Strings are converted into slices for processing

1. string 底层是一个byte的数组,因此string也可以进行切片处理
str:="hello@163.com"
使用切片获取到163.com
scli:=str[6:]
fmt.Println("==== result: ",scli)
2. string是不可变得,不能通过 str[0] = "z" 的方式来修改(string存储在静态去)
编译就会报错
3. 如果要修改字符串,先将string转换为 []byte 然后修改
比如:str="hello@163.com",改成 str"zhello@163.com"
Arr1:=[]byte(str)
Arr1[0]="z"
str=string(Arr1)
注意,转成[]byte后,可以处理数字和字母,不能处理中文。它是按字节处理的,一个中文是3个字节
解决办法:将string转还成[]rune,因为[]rune 是按字符处理,兼容汉字
Arr2:=[]rune(str)
Arr2[0]="北"
str=string(Arr2)

Leave a Reply

Your email address will not be published. Required fields are marked *

en_USEnglish