ホームページ > バックエンド開発 > Golang > Go言語で文字列をトラバースする方法

Go言語で文字列をトラバースする方法

青灯夜游
リリース: 2023-01-14 10:43:52
オリジナル
5947 人が閲覧しました

文字列走査方法: 1. 「for range」ステートメントを使用して走査します。構文は「for key, value := range str {...}」です。 2. 次の Map() 関数を使用します。 traverse する文字列パッケージ。構文は「trings.Map(func(rune),original string)」です。パラメータ「func(rune)」は文字列内の各文字を処理するために使用されるコールバック関数です。

Go言語で文字列をトラバースする方法

このチュートリアルの動作環境: 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)
	}
}
ログイン後にコピー

コード出力は次のとおりです:

Go言語で文字列をトラバースする方法

コード、実際の型はルーン型で、それを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)
    }
    ログイン後にコピー

    分析:

    Go言語で文字列をトラバースする方法

    文字列型変数 strHaicoder を定義し、その文字列の strings.Map() 関数を使用して strEncry 関数を使用して文字列の各文字を処理し、print を使用して最後の文字列を出力しました。の結果。

    • strEncry 関数は、文字の ASCII コードに 1 を加算する、つまり文字を 1 ビット戻す関数を実装するため、渡す文字列は「HaiCoder」になります。最終的には「IbjDpefs」になります。

    • [関連する推奨事項:

      Go ビデオ チュートリアル
    プログラミング教育

    ]

    以上がGo言語で文字列をトラバースする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート