如何将字符串作为字符值访问

用户2671513:

http://play.golang.org/p/ZsALO8oF3W

我想遍历一个字符串并返回字符值。如何不返回每个字母的数值,而返回实际字符​​?

现在我得到这个

 0 72 72
 1 101 101
 2 108 108
 3 108 108
 4 111 111

我想要的输出是

 0 h h
 1 e e
 2 l l
 3 l l
 4 o o

 package main

 import "fmt"

 func main() {

    str := "Hello"
    for i, elem := range str {
        fmt.Println(i, str[i], elem)
    }

    for elem := range str {
        fmt.Println(elem)
    }   
 }

谢谢,

peterSO:

对于声明

对于字符串值,“ range”子句在字节索引0开始的字符串中的Unicode代码点上进行迭代。在连续迭代中,索引值将是UTF-8编码的连续代码点中第一个字节的索引。字符串,符文类型的第二个值将是相应代码点的值。如果迭代遇到无效的UTF-8序列,则第二个值将是Unicode替换字符0xFFFD,并且下一个迭代将在字符串中前进单个字节。

例如,

package main

import "fmt"

func main() {
    str := "Hello"
    for _, r := range str {
        c := string(r)
        fmt.Println(c)
    }
    fmt.Println()
    for i, r := range str {
        fmt.Println(i, r, string(r))
    }
}

输出:

H
e
l
l
o

0 72 H
1 101 e
2 108 l
3 108 l
4 111 o

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章