Golang|golang 如何翻转含有中文 数字 英文字母等任意字符串

问题描述 翻转含有 中文、数字、英文字母 等任意字符串
示例

输入:"he師l發lo,世。+-*界,6" 输出:"6,界*-+。世,ol發l師eh"

Golang 实现
package mainimport "fmt"func reverseString(s string) string { // 将字符串转换为 rune 类型的切片,并对该切片翻转 res := reverse([]int32(s)) // 再把 rune 类型的切片转为 string return string(res) }func reverse(s []int32) []rune { // 左右指针,对切片依次翻转 for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 { s[i], s[j] = s[j], s[i] } return s }func main() { s := "he師l發lo,世。+-*界,6" res := reverseString(s) fmt.Println(res) }

rune 关键字是 int32 的别名,比 byte 可以表示更多的字符,可以处理一切字符。
因此,将字符串转为 rune 的切片,再进行翻转,即可解决。
当然,你也可以写 []int32
在 go 的源码中:
type byte = uint8type rune = int32

李培冠博客 欢迎访问我的个人网站:
【Golang|golang 如何翻转含有中文 数字 英文字母等任意字符串】李培冠博客:lpgit.com

    推荐阅读