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