go语言中字符串怎么遍历

字符串遍历方法:1、使用“for range”语句遍历,语法“for key, value := range str {…}”;2、使用strings包的Map()函数来遍历,语法“trings.Map(func(rune), 原字符串)”,其中参数“func(rune)”是一个回调函数,用于对字符串中每一个字符进行处理。

go语言中字符串怎么遍历

本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。

go语言中遍历字符串的方法

方法1:使用for range语句

for range 结构是Go语言特有的一种的迭代结构,在许多情况下都非常有用,for range 可以遍历数组、切片、字符串、map 及通道(channel),for range 语法上类似于其它语言中的 foreach 语句,一般形式为:

立即学习“go语言免费学习笔记(深入)”;

for key, val := range coll {    ...}

登录后复制

需要要注意的是,val 始终为集合中对应索引的值拷贝,因此它一般只具有只读性质,对它所做的任何修改都不会影响到集合中原有的值。一个字符串是 Unicode 编码的字符(或称之为 rune )集合,因此也可以用它来迭代字符串:

for pos, char := range str {    ...}

登录后复制

每个 rune 字符和索引在 for range 循环中是一一对应的,它能够自动根据 UTF-8 规则识别 Unicode 编码的字符。

下面这段代码展示了如何遍历字符串:

package mainimport ("fmt")func main() {var str = "hello 你好"for key, value := range str {fmt.Printf("key:%d value:0x%x", key, value)}}

登录后复制

代码输出如下:

1.png

代码中的变量 value,实际类型是 rune 类型,以十六进制打印出来就是字符的编码。

方法2:使用strings.Map() 函数 

在开发过程中,很多时候我们需要对一个 字符串 中的每一个 字符 都做相对应的处理,在 Go 语言 中,提供了 strings.Map() 函数 实现了这样的功能。

func Map(mapping func(rune) rune, s string) string

登录后复制

参数 描述

mapping对字符串中每一个字符的处理函数。s原字符串。

返回值:

返回处理后的字符串。

说明:

对字符串 s 中的每一个字符都做 mapping 处理。mapping 是一个 匿名函数 ,接受一个 rune 类型的参数,返回的也是一个 rune 类型的参数。

示例1:遍历字符串,将字符串每一个字符后移一位

package mainimport ("fmt""strings")func strEncry(r rune)rune{return r+1}func main() {//使用 strings.Map() 函数,实现将一个字符串中的每一个字符都后移一位strHaiCoder := "HaiCoder"mapStr := strings.Map(strEncry, strHaiCoder)fmt.Println("mapStr =", mapStr)}

登录后复制

2.png

分析:

我们定义了一个字符串类型的 变量 strHaicoder,接着我们使用字符串的 strings.Map() 函数将字符串每一位字符使用 strEncry 函数进行处理,并使用 print 打印最终的结果。

strEncry 函数实现了将字符的 ASCII 码加一的功能,即字符往后移动一位,因此我们传入的字符串是 “HaiCoder”,最终变成了 “IbjDpefs”。

【相关推荐:Go视频教程、编程教学】

以上就是go语言中字符串怎么遍历的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2415051.html

(0)
上一篇 2025年3月3日 00:50:13
下一篇 2025年2月23日 20:09:19

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • go语言怎么重复字符串

    在go语言中,可以使用Strings包里的Repeat()函数来重复字符串;该函数可以重复指定次数的字符串 本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。 在go语言中,可以使用Strings包里的Repea…

    2025年3月3日
    200
  • goland是什么

    Goland是由JetBrains公司专为Go开发的跨平台的商业IDE,旨在为Go开发者提供的一个符合人体工程学的IDE。Goland整合了IntelliJ 平台(一个用于 java 语言开发的集成环境,也可用于其他开发语言),提供了针对G…

    2025年3月3日 编程技术
    200
  • golang包的特性是什么

    特性:1、包名一般是小写,用一个简短且有意义的名称;2、包名一般要和所在的目录同名,也可不同名,包名中不能包含“-”等特殊符号;3、包一般使用域名作为目录名称,这样能保证包名的唯一性;4、包名为main的包为应用程序的入口包,编译源码时如果…

    2025年3月3日
    200
  • golang切片的长度与容量是什么

    在golang中,切片长度就是切片中元素的数量;切片容量是从创建切片的索引开始的底层数组中元素的数量,即从切片的第一个元素开始数,到其底层数组元素末尾的个数。切片的长度与容量是可以计算的,内置方法len()可获取长度,cap()可获取容量;…

    2025年3月3日
    200
  • go语言中数组与切片有什么区别

    数组与切片的区别:1、切片是指针类型,数组是值类型;2、数组的赋值形式为值传递,切片的赋值形式为引用传递;3、数组的长度是固定的,而切片长度可以任意调整(切片是动态的数组);4、数组的长度是固定的,而切片长度可以任意调整(切片是动态的数组)…

    2025年3月3日
    200
  • go语言怎么比较字符串

    比较方法:1、直接使用“==”运算符比较,语法“str1 == str2”,该方法区分大小写。2、利用strings包的Compare()函数比较,语法“strings.Compare(a,b)”;返回值为int类型,0表示两数相等,1表示…

    2025年3月3日
    200
  • golang怎么添加list元素

    添加方法:1、用InsertBefore()函数在列表指定元素(mark点)前插入元素,语法“InsertBefore(v,mark)”;2、用InsertAfter()函数在列表指定元素(mark点)后插入元素,语法“InsertAfte…

    2025年3月3日 编程技术
    200
  • go语言怎么获取list长度

    在go语言中,可以使用列表内置的Len()函数来获取list长度,语法“列表list.Len()”,返回值为指定list的长度。Len()函数可用于计算数组(包括数组指针)、切片(slice)、map、channel、字符串等数据类型的长度…

    2025年3月3日
    100
  • golang循环遍历map的方式有几种

    golang循环遍历map的方式有1种,就是利用“for range”语句。“for range”是Go语言特有的一种的迭代结构,语法“for key, value := range mapName{…}”,返回的第一个是map…

    2025年3月3日 编程技术
    200
  • go语言怎么获取map元素

    两种方法:1、利用“for range”语句遍历map来获取全部元素,语法“for key, value := range mapName{…}”。2、使用key做为索引的形式来获取指定元素,语法“value, isOk := …

    2025年3月3日
    200

发表回复

登录后才能评论