Go语言字符串遍历处理

Go语言字符串遍历处理教程

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

Map()函数

语法

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

参数

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

返回值

返回处理后的字符串。

说明

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

案例

字符串每一个字符后移一位

使用 strings.Map() 函数,实现将一个字符串中的每一个字符都后移一位

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

程序运行后,控制台输出如下:

73 golang strings map.png

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

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

字符串大写字符后移一位

使用 strings.Map() 函数,实现将一个字符串中的大写字符都后移一位

package main import ( "fmt" "strings" ) func strEncry(r rune)rune{ if r >= 'A' && r <= 'Z'{ return r+1 } return r } func main() { fmt.Println("嗨客网(www.haicoder.net)") //使用 strings.Map() 函数,实现将一个字符串中的大写字符都后移一位 strHaiCoder := "嗨客网(HaiCoder)" mapStr := strings.Map(strEncry, strHaiCoder) fmt.Println("mapStr =", mapStr) }

程序运行后,控制台输出如下:

74 golang strings map.png

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

strEncry 函数中,使用 if 判断 ,如果当前字符是大写字符,那么就往后移动一位,因此我们传入的字符串是 “嗨客网(HaiCoder)”,最终变成了 “嗨客网(IaiDoder)”。

Go语言字符串遍历处理总结

在 Go 语言中,提供了 strings.Map() 函数用于对一个字符串中的每一个字符都做相对应的处理的功能。Go 语言 Map() 函数语法:

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