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) }
程序运行后,控制台输出如下:
首先,我们定义了一个字符串类型的 strHaicoder,接着我们使用字符串的 strings.Map() 函数将字符串每一位字符使用 strEncry 函数进行处理,并使用 打印最终的结果。
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) }
程序运行后,控制台输出如下:
首先,我们定义了一个字符串类型的变量 strHaicoder,接着我们使用字符串的 strings.Map() 函数将字符串每一位字符使用 strEncry 函数进行处理,并使用 print 打印最终的结果。
strEncry 函数中,使用 ,如果当前字符是大写字符,那么就往后移动一位,因此我们传入的字符串是 “嗨客网(HaiCoder)”,最终变成了 “嗨客网(IaiDoder)”。
Go语言字符串遍历处理总结
在 Go 语言中,提供了 strings.Map() 函数用于对一个字符串中的每一个字符都做相对应的处理的功能。Go 语言 Map() 函数语法:
func Map(mapping func(rune) rune, s string) string