go语言之数组与字符串之间的相互转换

一,字符串如何转换为数组(切片)

个人理解的是 切片是动态数组,因为我是c 出身,下面切片暂且直接叫做数组了

1.数组的创建:

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

//数组 <<= string
IPAddresses := []string{leftIP}

2.直接写进空的数组里面:

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

二,数组如何转换为字符串

1.将数组里的一个元素直接转化为字符串

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

2.将数组里面的数据全转换为字符串

func arrayToString(arr []string) string {
   var result string
   for _, i := range arr {  //遍历数组中所有元素追加成string
    	result += i
   }
   return result
}
  1. 字符串处理
ports := strings.Replace(ports, ",", "", 1)
字符串替换 替换第一个匹配的字符串//可用于去掉第一个指定的字符串
  1. 字符串 转换成切片来处理
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)
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值