golang字符串修改

package  main 
import "fmt"
func main(){
	s := "hello 世界!"
    r :=[]rune(s)
	r[6] = '中'
	r[7]='国'
	fmt.Println(s)
	fmt.Println(string(r))
}

因为go语言中,字符串内容不能修改,也就不能s[i]这种方式修改字符串中的UTF-8编码,如果确实需要修改,那么可以讲字符串的内容复制到另一个可写的变量中,然后再进行修改,一般使用[]byte []rune类型

如果要对字符串中的字节进行修改,则需要转为[]byte格式,如果要对字符串中的字符进行修改,则需要转为[]rune格式,准换过程会自动复制数据

package  main 
import "fmt"
func main(){
	s := "hello 世界!"
    r :=[]rune(s)
	r[6] = '中'
	r[7]='国'
	fmt.Println(s)
	fmt.Println(string(r))
}

和c/C++不一样,go语言中字符串长度是限定的,而非特殊字符\0,string类型的0值是长度为0的字符串,是空""

一般比较运算付 == !==  <  <=  >=  > 通过再内存中按字节比较来实现字符串的对比。可以通过函数len()来获取字符串所占用的字节长度。len(str)字符串的内容纯字节,可以通过标准索引法来获取,再中括号[]内写入索引。

字符串str的第一个字节str[0]第i字节 str[i-1]最后一个字节str[len(str)-1]

需要注意的是这种转换方案对纯ASCII码的字符串有效,获取字符串中的某字节的地址是非法行为&str[i]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值