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中interface接口的原理和使用技巧

    详解Golang中interface接口的原理和使用技巧

    interface 接口在 Go 语言里面的地位非常重要,是一个非常重要的数据结构。本文主要介绍了Golang中interface接口的原理和使用技巧,希望对大家有所帮助
    2022-11-11
  • 基于Go实现TCP长连接上的请求数控制

    基于Go实现TCP长连接上的请求数控制

    在服务端开启长连接的情况下,四层负载均衡转发请求时,会出现服务端收到的请求qps不均匀的情况或是服务器无法接受到请求,因此需要服务端定期主动断开一些长连接,所以本文给大家介绍了基于Go实现TCP长连接上的请求数控制,需要的朋友可以参考下
    2024-05-05
  • Go 面向包新提案透明文件夹必要性分析

    Go 面向包新提案透明文件夹必要性分析

    这篇文章主要为大家介绍了Go 面向包新提案,透明文件夹必要性分析,看看是否合适加进 Go 特性中,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Golang并发绕不开的重要组件之Goroutine详解

    Golang并发绕不开的重要组件之Goroutine详解

    Goroutine、Channel、Context、Sync都是Golang并发编程中的几个重要组件,这篇文中主要为大家介绍了Goroutine的相关知识,需要的可以参考一下
    2023-06-06
  • GoLang协程库libtask学习笔记

    GoLang协程库libtask学习笔记

    libtask一个C语言的协程库,是go语言的前身很早期的原型. 测试机器是我的mac air 安装的centos虚拟机(只有一个核), 代码没有采用任何优化,只是使用默认配置
    2022-12-12
  • Go get命令使用socket代理的方法

    Go get命令使用socket代理的方法

    由于某些不可描述的原因,国内使用 go get 命令安装某些包的时候会超时导致失败,比如 net 包、 sys 包、 tools 包等。这篇文章给大家介绍go get 命令使用socket 代理的方法,感兴趣的朋友一起看看吧
    2018-10-10
  • go实现图片拼接与文字书写的方法实例

    go实现图片拼接与文字书写的方法实例

    这篇文章主要给大家介绍了关于go实现图片拼接与文字书写的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • go语言LeetCode题解944删列造序示例详解

    go语言LeetCode题解944删列造序示例详解

    这篇文章主要为大家介绍了go语言LeetCode题解944删列造序示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 详解如何在Go项目中输出版本信息

    详解如何在Go项目中输出版本信息

    这篇文章主要介绍了详解如何在Go项目中输出版本信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • go HTTP2 的头部压缩算法hpack实现详解

    go HTTP2 的头部压缩算法hpack实现详解

    这篇文章主要为大家介绍了go HTTP2 的头部压缩算法hpack实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10

最新评论