字符串反转问题

好像不可以通过的遍历的方式修改字符串
can't assign to s[i]

func f6(s string) string {
    l := len(s)
    for i := range s {
        s[i], s[l-i-1] = s[l-i-1], s[i]
    }
    return s
}
最佳答案

这个网站的右键被禁掉了?

4年前 评论
讨论数量: 5

调完了,把string转[]byte就行了

func f6(s string) string {
    l := len(s)
    temp := []byte(s)
    for i := 0; i < l/2; i ++ {
        temp[i], temp[l-i-1] = temp[l-i-1], temp[i]
    }
    return string(temp[:])
}
5个月前 评论
  1. 转成字节切片就可以 []byte()
  2. for i := range s 这里也有问题吧,相当于交换了顺序,又给换回去了.
5个月前 评论
KKKKUNG

划重点:
String 是不可更改的

5个月前 评论

@Bernard 转换成[]rune比较好,可以支持 UTF-8 编码。

5个月前 评论
openset
func reverseString(s string) string {
    runes := []rune(s)
    for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
        runes[i], runes[j] = runes[j], runes[i]
    }
    return string(runes)
}
5个月前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

社区文档:

短小精湛的 Golang 入门教程,是 The Little Go Book 的中文翻译
Github 上《The Way to Go》中文译本的镜像,优化了排版
@无闻 出品的一套面向新手级别学习者 Go 语言的视频教程
一步步带你进入 Go Web 编程的世界,让我们开始探索吧!
号称宇宙最快的 Iris Web 框架的中文文档翻译
Gin 是一个用 Go 语言编写的 WEB 框架,本文档为其中文版本
GORM 是优秀的 Golang ORM 类库,本文档是其官方文档的中文翻译,每年更新