文字列走査方法: 1. 「for range」ステートメントを使用して走査します。構文は「for key, value := range str {...}」です。 2. 次の Map() 関数を使用します。 traverse する文字列パッケージ。構文は「trings.Map(func(rune),original string)」です。パラメータ「func(rune)」は文字列内の各文字を処理するために使用されるコールバック関数です。
このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。
#Go 言語で文字列を走査する方法
方法 1: for range ステートメントを使用する
for range 構造は、Go 言語のユニークな反復構造です。多くの状況で非常に役立ちます。for range は、配列、スライス、文字列、マップ、チャネルをトラバースできます。for range の構文は、他の言語の構文と似ています。 foreach ステートメントの一般的な形式は次のとおりです。for key, val := range coll { ... }val は常にコレクション内の対応するインデックスの値のコピーであるため、通常は読み取り専用の性質のみを持ち、任意の変更を加えても、コレクション内の元の値には影響しません。文字列は Unicode でエンコードされた文字 (またはルーン) のコレクションであるため、文字列を反復するために使用することもできます。
for pos, char := range str { ... }各ルーン文字とインデックスは、for range ループ内で 1 対 1 に対応します。 、UTF-8 ルールに従って Unicode でエンコードされた文字を自動的に識別できます。 次のコードは、文字列を走査する方法を示しています:
package main import ( "fmt" ) func main() { var str = "hello 你好" for key, value := range str { fmt.Printf("key:%d value:0x%x\n", key, value) } }コード出力は次のとおりです: コード、実際の型はルーン型で、それを16進数で表示するのが文字コードです。
方法 2: strings.Map() 関数を使用する
開発プロセスでは、処理のために文字列内の各文字に対応させる必要があることがよくあります。 Go 言語では、そのような関数を実装するために strings.Map() 関数が提供されています。func Map(mapping func(rune) rune, s string) string
説明 | |
---|---|
文字列内の各文字の処理関数。 | #s |
元の文字列。 | 戻り値: |
処理された文字列を返します。
説明:
文字列 s 内のすべての文字をマップします。マッピングは、ルーン タイプ パラメータを受け取り、ルーン タイプ パラメータを返す匿名関数です。
例 1: 文字列をトラバースし、文字列の各文字を 1 ビット前に移動します
package main import ( "fmt" "strings" ) func strEncry(r rune)rune{ return r+1 } func main() { //使用 strings.Map() 函数,实现将一个字符串中的每一个字符都后移一位 strHaiCoder := "HaiCoder" mapStr := strings.Map(strEncry, strHaiCoder) fmt.Println("mapStr =", mapStr) }
文字列型変数 strHaicoder を定義し、その文字列の strings.Map() 関数を使用して strEncry 関数を使用して文字列の各文字を処理し、print を使用して最後の文字列を出力しました。の結果。
strEncry 関数は、文字の ASCII コードに 1 を加算する、つまり文字を 1 ビット戻す関数を実装するため、渡す文字列は「HaiCoder」になります。最終的には「IbjDpefs」になります。
[関連する推奨事項:
Go ビデオ チュートリアル以上がGo言語で文字列をトラバースする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。