Go言語で文字列から数値を抽出する方法

王林
リリース: 2023-07-12 13:18:07
オリジナル
3313 人が閲覧しました

Go 言語で文字列から数値を抽出する方法

Go 言語では、文字列から数値部分を抽出する必要があることがよくあります。たとえば、電話番号を含む文字列の数値部分を抽出したり、価格情報を含む文字列から価格番号を抽出したりする必要がある場合があります。この記事では、この目標を達成するための一般的な方法をいくつか紹介します。

方法 1: 正規表現を使用する

Go 言語には、文字列の数値部分を抽出するために使用できる組み込みの正規表現ライブラリregexpが用意されています。以下はサンプル コードです:

package main import ( "fmt" "regexp" ) func main() { str := "ABC1234DEF5678GHI" re := regexp.MustCompile("[0-9]+") nums := re.FindAllString(str, -1) fmt.Println(nums) }
ログイン後にコピー

上記のコードを実行すると、出力結果は次のようになります:[1234 5678]

上記のコードでは、正規表現[0-9]を使用して文字列の数値部分と一致します。関数FindAllString一致するすべての文字列を返します。 2 番目のパラメータ-1は、最初の一致だけではなく、すべての一致を返すことを意味します。最後に、抽出した数値部分を出力します。

方法 2:strconvパッケージを使用する

Go 言語のstrconvパッケージには、文字列およびさまざまな数値型を変換するための一連の関数が用意されています。関数。これらの関数を使用して、文字列から数値を抽出できます。

以下はサンプル コードです:

package main import ( "fmt" "strconv" ) func main() { str := "ABC1234DEF5678GHI" nums := make([]int, 0) num := "" for _, char := range str { if char >= '0' && char <= '9' { num += string(char) } else if num != "" { n, _ := strconv.Atoi(num) nums = append(nums, n) num = "" } } fmt.Println(nums) }
ログイン後にコピー

上記のコードを実行すると、出力結果は次のようになります:[1234 5678]

上記のコードでは、文字列内の各文字を反復処理し、抽出された数値文字列をAtoi関数を使用して整数に変換します。最後に、抽出した数値部分を出力します。

方法 3: 文字列を手動で解析する

文字列の数値部分に特定のルールがある場合は、文字列を手動で解析して数値を抽出することもできます。以下はサンプル コードです:

package main import "fmt" func main() { str := "ABC1234DEF5678GHI" nums := make([]int, 0) num := 0 for _, char := range str { if char >= '0' && char <= '9' { num = num*10 + int(char-'0') } else if num != 0 { nums = append(nums, num) num = 0 } } fmt.Println(nums) }
ログイン後にコピー

上記のコードを実行すると、出力結果は次のようになります:[1234 5678]

上記のコードでは、文字列内の各文字を反復処理し、現在の文字の ASCII コードから文字'0'の ASCII コードを引いたものを使用して、対応する数値を取得します。現在の数値に常に 10 を掛け、新しい数値を加算することで、最終的な数値が得られます。最後に、抽出した数値部分を出力します。

上記の紹介を通じて、Go 言語が文字列の数値部分を抽出するさまざまなメソッドを提供していることがわかります。特定のニーズに基づいて適切な方法を選択できます。どの方法を選択しても、文字列の数値部分を正確に抽出できるため、その後の処理が容易になります。

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

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