在go中遍历字符串字符的最正确方法是什么

Irini Koutaki:

我是新手,Go我希望迭代字符串的字符

package main

import (
    "fmt"
)

func main() {
    var a string = "abcd"
    for i, c := range a {
        fmt.Printf("%d %s\n", i, c)
    }
}

我希望输出是

    0 a
    1 b
    2 c
    3 d

但事实并非如此。我究竟做错了什么?

peterSO:

修复go vet和包fmt格式错误消息(type runetype 的别名int32):

10: Printf format %s has arg c of wrong type rune

0 %!s(int32=97)
1 %!s(int32=98)
2 %!s(int32=99)
3 %!s(int32=100)

游乐场:https : //play.golang.org/p/oM9D8oNlaAO

符文是Unicode代码点(字符),而不是字符串。

%c不要使用%s例如,

package main

import (
    "fmt"
)

func main() {
    var a string = "abcd"
    for i, c := range a {
        fmt.Printf("%d %c\n", i, c)
    }
}

游乐场:https : //play.golang.org/p/LFQPGZ9X5kk

输出:

0 a
1 b
2 c
3 d

stringUTF-8 类型的可变长度编码示例

package main

import (
    "fmt"
)

func main() {
    var a string = "Greece Ελλάδα"
    for i, c := range a {
        fmt.Printf("%2d %c\n", i, c)
    }
}

游乐场:https : //play.golang.org/p/Fdgg6UMXAAt

输出:

 0 G
 1 r
 2 e
 3 e
 4 c
 5 e
 6  
 7 Ε
 9 λ
11 λ
13 ά
15 δ
17 α

参考文献:

转到软件包fmt文档

Go博客:Go中的字符串,字节,符文和字符

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java中迭代字符串的字符最简单/最佳/最正确的方法是什么?

从字符串中删除字符并创建子字符串的最pythonic方法是什么?

比较Clojure中的字符串的正确方法是什么?

Go中的字符串是什么?

使用JS在字符串中找出字符重复的最简单方法是什么?

修剪字符串值的正确方法是什么?

文字在字符串比较中的正确位置是什么?

在Swift中判断字符串中的字符是否为单词字符最简单的方法是什么?

GO时间字符串中的“ m = +”是什么?

遍历Go中的多行字符串

在Powershell中增加字符串变量中数字的最快/最简单方法是什么?

用NSRegularExpression结果为字符串加上字符串的正确方法是什么?

在Julia中重复格式字符串的正确方法是什么?

在Java中串联空字符串的正确方法是什么?

在C中读取字符串以防止出现问题的正确方法是什么

在Objective-C中检查空字符串的正确方法是什么?

当键是字符串时,迭代地从数组中获取值的正确方法是什么?

在MySQL查询中检查修剪过的字符串的伪造的正确方法是什么?

在Typescript中检查字符串相等性的正确方法是什么(针对Angular 4)

删除arraylist中的特定字符串的正确方法是什么?

在Typescript中键是字符串而值是对象数组的对象中声明类型的正确方法是什么?

在Julia中获取UTF-8子字符串的最简单方法是什么

过滤字符串中变化的数字的最简单方法是什么?

在FileHelpers中以字符串形式获取记录的最干净方法是什么?

在字符串中获取年份的最简单方法是什么?

在Go中测试空字符串的最佳方法是什么?

在Rust中检查字符串是否以某个字符开头的正确且惯用的方法是什么?

从字符串中删除第一个字符的最简单方法是什么?

检查数据帧值中是否出现字符/子字符串的最简单方法是什么?