· 1.2 rc1 golang Go言語 strings unicode/utf8

#golang 文字数をカウントするには?

  • このエントリーをはてなブックマークに追加

文字数をカウントしたい!

そう思ってすぐ思いついたのは、stringsパッケージのCount関数。

Exampleのあったので、確認のためRunしてみる。

なぜか期待する文字数の +1 になる。srcを見てみたところ、+1されてる・・・。なんで?

とツイートしたら、ロブ・パイク先生からお返事頂きました!

でも、あれ? strings#Countの例にあるけど、

fmt.Println(strings.Count("cheese", "e"))

これは、3と出力しますよね。

fmt.Println(strings.Count("five", ""))

これは、なんで5を出力するの?すべての文字列にempty stringが”含まれてる”んなら、1じゃないのかな!?この答えは、たぶんプログラミング言語の基本な気がする…ちょっと調べてみよう。

とにかく、期待する文字数をカウントするには、Count関数でも使われているunicode/utf8パッケージのRuneCountInString関数を使えばよさそうだ。

  • このエントリーをはてなブックマークに追加
  • LinkedIn
  • Tumblr
  • Reddit
  • Google+
  • Pinterest
  • Pocket