Golang関数の文字列処理と文字エンコード変換スキル

PHPz
リリース: 2023-05-18 14:30:22
オリジナル
1056 人が閲覧しました

Golang はプログラミング言語として、非常に強力で豊富な文字列処理機能と文字エンコード変換機能を提供します。この記事では、読者が Golang をより深く理解し、使用できるように、Golang 関数で一般的に使用される文字列処理と文字エンコード変換テクニックを紹介します。

1. 文字列処理

  1. 文字列接続

Golang では、「 」記号を使用して異なる文字列を接続できます。例:

str1 := "Hello"
str2 := "World"
str3 := str1 + " " + str2
fmt.Println(str3) //输出 "Hello World"
ログイン後にコピー

さらに、「fmt.Sprintf」関数を使用して、さまざまなデータ型の変数を文字列に変換し、それらを接続することもできます。例:

num := 10
str := fmt.Sprintf("Number is %d", num)
fmt.Println(str) //输出 "Number is 10"
ログイン後にコピー
  1. 文字列のインターセプトとスプライシング

Golang の文字列スライスを使用して部分文字列を取得し、文字列インターセプトを実装します。例:

str := "Hello World"
substr := str[0:5]
fmt.Println(substr) //输出 "Hello"
ログイン後にコピー

さらに、「strings.Join」関数を使用して、複数の文字列を 1 つの文字列に連結することもできます。例:

strs := []string{"Hello", "World"}
result := strings.Join(strs, " ")
fmt.Println(result) //输出 "Hello World"
ログイン後にコピー
  1. 文字列の検索と置換

Golang の「strings.Index」関数を使用して、元の文字列内の指定された部分文字列の位置を見つけます。例:

str := "Hello World"
idx := strings.Index(str, "World")
fmt.Println(idx) //输出 6
ログイン後にコピー

文字列内の特定の部分文字列を置換する場合部分文字列の場合、次のように「strings.Replace」関数を使用できます:

str := "Hello World"
newstr := strings.Replace(str, "World", "Golang", 1)
fmt.Println(newstr) //输出 "Hello Golang"
ログイン後にコピー

注: 「strings.Replace」関数の最後のパラメータは、置換の数を示します。 - に設定すると、 1、すべての置換を意味します。

  1. 文字列変換

Golang の「strconv」関数を使用して、他のデータ型を文字列型に変換します。例:

num := 10
str := strconv.Itoa(num)
fmt.Println(str) //输出 "10"
ログイン後にコピー

To 文字列を次のように変換するには他のデータ型の場合は、「strconv.Parse」関数シリーズを使用できます。例:

str := "10"
num, _ := strconv.Atoi(str)
fmt.Println(num) //输出 10
ログイン後にコピー

注: 「strconv.Atoi」関数は 2 つの値を返します。変換されたデータを直接使用するには、以下を使用する必要があります。 「_」は 2 番目の戻り値を無視します。

2. 文字エンコーディングの変換

Golang は、UTF-8、GBK などの複数の文字エンコーディング形式をサポートしています。 Golangの機能でよく使われる文字コード変換関数を紹介します。

  1. 文字エンコード変換

Golang の「unicode/utf8」パッケージと「bytes」パッケージを使用して文字エンコード変換を実現します。たとえば、UTF-8 でエンコードされた文字列を GBK エンコードに変換します。

str := "你好,世界"
newstr, _ := ioutil.ReadAll(transform.NewReader(bytes.NewReader([]byte(str)), simplifiedchinese.GBK.NewEncoder()))
fmt.Println(newstr) //输出 "浣犲ソ£?涓枃"
ログイン後にコピー

注: 文字エンコード変換関数は 2 つの値を返します。1 つ目は変換後の新しい文字列で、2 つ目はエラー メッセージです。新しく変換された文字列を直接使用するには、「_」を使用して 2 番目の戻り値を無視する必要があります。

  1. 文字エンコード判定

指定された文字列の文字エンコードが特定の形式に準拠しているかどうかを判定するには、Golang の「unicode/utf8」パッケージを使用します。例:

str := "你好,世界"
isutf8 := utf8.Valid([]byte(str))
fmt.Println(isutf8) //输出 true
ログイン後にコピー

上記のコードは、指定された文字列の文字エンコーディングが UTF-8 形式であるかどうかを判断し、UTF-8 形式である場合は "true" を返し、それ以外の場合は "false" を返します。

  1. 文字エンコーディング コンバータ

Golang の「charset」パッケージを使用して、異なる文字エンコーディングの文字列を UTF-8 エンコーディングに変換します。たとえば、GB2312 でエンコードされた文字列を UTF-8 エンコードに変換します。

str := "你好,世界"
decoder := simplifiedchinese.GB18030.NewDecoder()
newstr, _ := decoder.String(str)
fmt.Println(newstr) //输出 "你好,世界"
ログイン後にコピー

注: 上記のコードでは、文字エンコード コンバータ「decoder」を使用して、GB2312 でエンコードされた文字列を UTF-8 エンコードに変換します。

結論

この記事では、文字列の接続、インターセプト、検索、置換、変換のほか、文字エンコードの変換、判定、及び変換装置等この記事を通じて、読者が Golang をよりよく理解し、使用できることを願っています。

以上がGolang関数の文字列処理と文字エンコード変換スキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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