LoginSignup
4

More than 5 years have passed since last update.

golang で文字列をn文字で分割[遅い例]

Last updated at Posted at 2015-08-22

golang で文字列をn文字で分割する。(下記コードはくそ遅い例です。もっといいのはコメントいただきました)

regexp の FindAllString で ".{80}" みたいな正規表現で切る方法もあるんですけど、いずれにせよ余りはみなきゃならないので、下記みたいに strings.Split 後普通にやるのがいいんじゃないだろうか。。。と思ってます。
+= がベンチ的にどうか?ってのは見てません。

    splitlen := 80
    list := strings.Split(msg, "")
    str := ""
    for i, c := range list {
        if i > 0 && i % splitlen == 0 {
            log.Println(str)
            str = ""
        }
        str += c
    }
    if len(str) > 0 {
        log.Println(str)
    }

g(・∀・)o

追記

コメントでもらったものと比較したところ、コメントでもらったもののほうが圧倒的に速かったので、上記は悪い例ということでお見知り置きください。
@heliac2000 さんに指摘いただいたように素直に範囲指定するのがよいようです。ありがとうございました。

✧\\ g( 'ω' )o //✧

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
4