douban5644 2014-04-03 10:46
浏览 231
已采纳

在golang的字符串数组中打印特定字节的值

I am new to go lang and I want to print the individual byte of array of string

as in below code I want to print the values 'h','e','l','l','o' once at a time but I am not able to do the same.

func main() {
    strslice := make([]string, 4, 5)
    strslice[0] = "hello"
    strslice[1] = "go"
    strslice[2] = "lang"
    strslice[3] = "whatsup"
    for i := 0; i < len(strslice[i]); i++ {
        fmt.Printf("slice is %c 
", strslice[i])
    }
}
  • 写回答

2条回答 默认 最新

  • dongtangxi1584 2014-04-03 14:12
    关注

    In Go, character literals are stored in a string as a variable-width sequence of UTF-8 encoded bytes. The ASCII code points (0x00..0x7F) occupy one byte. Other code points occupy two to four bytes. To print code points (characters) separately,

    package main
    
    import "fmt"
    
    func main() {
        strslice := make([]string, 5, 5)
        strslice[0] = "hello"
        strslice[1] = "go"
        strslice[2] = "lang"
        strslice[3] = "whatsup"
        strslice[4] = "Hello, 世界"
        for _, s := range strslice {
            for _, c := range s {
                fmt.Printf("%c ", c)
            }
            fmt.Printf("
    ")
        }
    }
    

    Output:

    h e l l o 
    g o 
    l a n g 
    w h a t s u p 
    H e l l o ,   世 界 
    

    Here's an illustration of the difference between UTF-8 encoded bytes and characters,

    package main
    
    import "fmt"
    
    func main() {
        str := "Hello, 世界"
        fmt.Println("Bytes:")
        for i := 0; i < len(str); i++ {
            fmt.Printf("'%c' ", str[i])
        }
        fmt.Printf("
    ")
        fmt.Println("Characters:")
        for _, c := range str {
            fmt.Printf("'%c' ", c)
        }
        fmt.Printf("
    ")
    }
    

    Output:

    Bytes:
    'H' 'e' 'l' 'l' 'o' ',' ' ' 'ä' '¸' '' 'ç' '' '' 
    Characters:
    'H' 'e' 'l' 'l' 'o' ',' ' ' '世' '界' 
    

    References:

    Unicode UTF-8 FAQ

    For statements, The Go Programming Language Specification

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 ARIMA模型时间序列预测用pathon解决
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序,怎么查看客户esp32板子上程序及烧录地址
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)