Golang はプログラミング言語として、非常に強力で豊富な文字列処理機能と文字エンコード変換機能を提供します。この記事では、読者が Golang をより深く理解し、使用できるように、Golang 関数で一般的に使用される文字列処理と文字エンコード変換テクニックを紹介します。
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"
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"
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、すべての置換を意味します。
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の機能でよく使われる文字コード変換関数を紹介します。
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 番目の戻り値を無視する必要があります。
指定された文字列の文字エンコードが特定の形式に準拠しているかどうかを判定するには、Golang の「unicode/utf8」パッケージを使用します。例:
str := "你好,世界" isutf8 := utf8.Valid([]byte(str)) fmt.Println(isutf8) //输出 true
上記のコードは、指定された文字列の文字エンコーディングが UTF-8 形式であるかどうかを判断し、UTF-8 形式である場合は "true" を返し、それ以外の場合は "false" を返します。
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 サイトの他の関連記事を参照してください。