例えば 5個の林檎
というようにスペースを挟まずに数値と文字列が連なったテキストを分割させたいケースがあったとする。
このような場合、Goではどう対応できるかを調べた際の備忘録。
下記のスタックオーバーフローを参考にした。
どうやらこういうケースでは fmt.Sscanf
が利用できるようだ。
Goのドキュメント
以下サンプルコード。
package main import ( "fmt" "log" ) func main() { str := "5個の林檎" var num int var text string n, err := fmt.Sscanf(str, "%d%s", &num, &text) if err != nil { log.Fatalln(err) } fmt.Println(n) fmt.Println(num) fmt.Println(text) }
実行結果は以下のようになる。
一行目に表示されている返り値は、正常に解析された項目の数となる。
2 5 個の林檎