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)