Go语言中实现字符串遍历的两种方法
更新时间:2026年03月03日 09:24:57 作者:树下水月
这篇文章主要介绍了Go语言中两种字符串遍历方法,方法1和方法2,方法2解决了中文字符遍历时可能出现的乱码问题,通过将字符串转换为[]rune切片来避免索引输出错误,需要的朋友可以参考下
首先我们定义一个字符串,并进行相关循环输出
方法1
package main
import (
"fmt"
)
func main() {
var str string = "hello,world"
for i := 0; i < len(str); i++ {
fmt.Printf("%c \n", str[i])
}
}方法2:
package main
import (
"fmt"
)
func main() {
//字符串变量
var str string = "hello,world"
for index, val := range str {
fmt.Printf("index=%d,val=%c \n", index, val)
}一点问题都没有 划重点了 但如果字符串出现中文 就会乱码 range 没有,如:
package main
import (
"fmt"
)
func main() {
var str string = "hello,world北京"
for i := 0; i < len(str); i++ {
fmt.Printf("%c \n", str[i])
}为什么呢,因为len的时候,是根据字节进行渲染,一个汉字默认3个字段,索引输出乱码了 解决办法是需要加str转为[]rune切片
package main
import (
"fmt"
)
func main() {
var str string = "hello,world北京"
str2 := []rune(str)
for i := 0; i < len(str2); i++ {
fmt.Printf("index=%d,%c \n", i, str2[i])
}
}到此这篇关于Go语言中实现字符串遍历的两种方法的文章就介绍到这了,更多相关Go字符串遍历方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
数据竞争和内存重分配Golang slice并发不安全问题解决
这篇文章主要为大家介绍了数据竞争和内存重分配Golang slice并发不安全问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-10-10


最新评论