Go 言語で文字列の長さを調べる方法: 1. "len()" 関数を使用して ASCII 文字列の長さを計算します; 2. "utf8.RuneCountInString()" 関数を使用して Unicode 文字列を計算します長さ。
この記事の動作環境: Windows 7 システム、Go1.11.2 バージョン、Dell G3 コンピューター。
推奨チュートリアル: "go language"
Go 言語は文字列の長さを計算します - len() と RuneCountInString()
Go 言語の組み込み関数 len() を使用して、スライス、文字列、チャネルなどの長さを取得できます。次のコードでは、len() を使用して文字列の長さを取得できます。
tip1 := "genji is a ninja" fmt.Println(len(tip1)) tip2 := "忍者" fmt.Println(len(tip2))
プログラムの出力は次のとおりです。
16 6
len() 関数の戻り値は int 型で、ASCII 文字の数または文字列のバイト長を表します。
出力の最初の行の 16 は、tip1 の文字数が 16 であることを示します。
出力の 2 行目の 6 は、tip2 の文字形式、つまり「ninja」の文字数が 6 であることを示しています。ただし、慣例に従って、「ninja」の文字数は 6 です。 2である必要があります。
ここでの違いは、Go 言語の文字列はすべて UTF-8 形式で保存され、各漢字は 3 バイトを占めるため、len() を使用して 2 つの漢字に対応する 6 バイトを取得することです。
通常の文字数に基づいて計算する場合は、Go 言語の UTF-8 パッケージで提供される RuneCountInString() 関数を使用して、Uncode 文字の数をカウントする必要があります。
次のコードは、UTF-8 での文字数を計算する方法を示しています。
fmt.Println(utf8.RuneCountInString("忍者")) fmt.Println(utf8.RuneCountInString("龙忍出鞘,fight!"))
プログラムの出力は次のとおりです。
2 11
一般にゲームでは、ログイン時に名前を入力する必要があり、名前には通常長さの制限があります。中国人が名前として中国語を使用することに慣れていることを考慮すると、UTF-8 形式の文字列の長さを検出する必要があります。
概要
ASCII 文字列の長さには len() 関数を使用します。
Unicode 文字列の長さは utf8.RuneCountInString() 関数を使用します。
以上がGo言語で文字列の長さを調べる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。