19
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

golangで部分文字列を取り出す

Last updated at Posted at 2016-09-09

やり方は色々あるけど、ずぼらな私は用意されているパッケージを使うことにしました。

前提のお話

  • len(str)は、バイト長である。UTF-8の文字数ではない
  • str[0:10]も、バイト単位での切り出しになる。UTF-8の文字切り出しには使えない

まずはgo get

$ go get golang.org/x/exp/utf8string

サンプル

import "golang.org/x/exp/utf8string"

〜〜〜

str1 := "ごーらんぐ"
str2 := utf8string.NewString(str1)
fmt.Println(str2.Slice(1, str2.RuneCount()))

結果

ーらんぐ

utf8string.NewString(string)関数

  • utf8string.Stringインスタンスを生成する

utf8string.String#Slice(startIndex, endIndex)関数

  • startIndexは切り出し開始位置
  • endIndexは切り出し終了位置。endIndexは含まない
  • よってstartIndex〜endIndex-1までの文字を切り出す

utf8string.String#RuneCount()関数

  • UTF-8の文字数を返す
  • ちなみにただ文字数を取得したいときは以下の関数を使うだけでOK
strlen := utf8.RuneCountInString("HOGE")
19
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?