Go語言遍歷字符串——獲取每一個字符串元素


遍歷字符串有下面兩種寫法。

遍歷每一個ASCII字符

遍歷 ASCII 字符使用 for 的數值循環進行遍歷,直接取每個字符串的下標獲取 ASCII 字符,如下面的例子所示。

    theme := "狙擊 start"
    for i := 0; i < len(theme); i++ {
        fmt.Printf("ascii: %c  %d\n", theme[i], theme[i])
    }

 

程序輸出如下:

ascii: ?  231
ascii:     139
ascii:     153
ascii: ?  229
ascii:     135
ascii: ?  187
ascii:    32
ascii: s  115
ascii: t  116
ascii: a  97
ascii: r  114
ascii: t  116

 

這種模式下取到的漢字“慘不忍睹”。由於沒有使用 Unicode,漢字被顯示為亂碼。

按Unicode字符遍歷字符串

同樣的內容:

    theme := "狙擊 start"
    for _, s := range theme {
        fmt.Printf("Unicode: %c  %d\n", s, s)
    }

 

程序輸出如下:

Unicode: 狙  29401
Unicode: 擊  20987
Unicode:    32
Unicode: s  115
Unicode: t  116
Unicode: a  97
Unicode: r  114
Unicode: t  116

 

可以看到,這次漢字可以正常輸出了。

總結

  • ASCII 字符串遍歷直接使用下標。
  • Unicode 字符串遍歷用 for range。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM