在Golang 中將符文轉換為字串
您擔心將符文轉換為字串並列印它,遇到未定義的字元。讓我們深入研究這個問題並找到解決方案。
首先,在您的原始程式碼中,您使用 Scanner.Scan() 來讀取符文。但是,此方法旨在處理具有特殊令牌值的令牌或符文,而不是實際讀取的符文本身。
要讀取單一符文,您應該使用Scanner.Next():
c := b.Next() fmt.Println(c, string(c), strconv.QuoteRune(c))
此程式碼現在將正確讀取並列印符文作為整數、其字元表示形式及其引用版本。
或者,如果您如果想要簡單地將符文轉換為字串,可以使用簡單的類型轉換。 Rune 是 int32 的別名,將整數轉換為字串會產生其 UTF-8 表示形式。
r := rune('a') fmt.Println(r, string(r))
要迭代字串的rune,可以使用for ... range 循環:
for i, r := range "abc" { fmt.Printf("%d - %c (%v)\n", i, r, r) }
您也可以使用下列指令將字串轉換為符文切片[] rune("abc")。
另一個選項是使用 utf8.DecodeRuneInString()。
在使用 Scanner.Scan() 的原始程式碼中,您無意中將掃描器的模式配置為處理 Go 令牌,其中包含像「a」這樣的識別碼。呼叫 Scan() 然後返回 Scanner.Ident 並列印標識符的文本,導致未定義的字元。
以上是如何在 Golang 中將符文轉換為字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!