Golang でルーンを文字列に変換する
ルーンを文字列に変換するには、strconv.QuoteRune() 関数を使用できます。ただし、コードでは、scanner.Scan() を使用してルーンを読み取りますが、これは正しくありません。
scanner.Scan() 関数は、Scanner.Mode によって制御されるトークンまたは特別なトークンのルーンを読み取ります。ビットマスク。ルーン自体は返されませんが、text/scanner パッケージからの特別な定数が返されます。
単一のルーンを読み取るには、代わりに Scanner.Next() を使用します。修正されたコードは次のとおりです:
package main import ( "fmt" "strconv" "strings" "text/scanner" ) func main() { var b scanner.Scanner const a = `a` b.Init(strings.NewReader(a)) c := b.Next() fmt.Println(strconv.QuoteRune(c)) }
出力:
'a'
または、ルーンは int32 のエイリアスであるため、型変換を使用してルーンを文字列に直接変換することもできます:
r := rune('a') fmt.Println(string(r))
出力:
a
さらに便利にするために、for ... range 構造を使用して文字列のルーンを反復できます:
for _, r := range "abc" { fmt.Println(string(r)) }
出力:
a b c
[]rune() を使用して文字列をルーンのスライスに変換することもできます:
runes := []rune("abc") fmt.Println(runes) // Output: [97 98 99]
最後に、utf8.DecodeRuneInString() を使用して、文字列からのルーン。
以上がGoでルーンを文字列に変換するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。