[ruby-list:37743] Re: 日本語stringの切り分け

From: Koji Arai <JCA02266@...>
Date: 2003-06-01 04:20:25 UTC
List: ruby-list #37743
新井です。

In message "[ruby-list:37742] 日本語stringの切り分け"
  on 01 Jun 2003 12:24:08 +0900,
  Yamamoto Dan <dango@ps.sakura.ne.jp> wrote:
> 団です。
> 
> 下記のようにsplitLenからatrArrayを求めたいのですが
> 方法が浮かびません。よい方法はないでしょうか。

http://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=FAQ%3A%3A%C6%FC%CB%DC%B8%EC%A4%CE%BC%E8%A4%EA%B0%B7%A4%A4

の10.10 や 10.11 でいかがでしょうか?

class String
  def jfold(len)
    raise ArgumentError if len <= 0

    ary = nil

    right = self.delete("\r\n")
    while right and not right.empty?
      left, right = right.unpack("a#{len} a*")

      if /.\z/ !~ left
          right[0,0] = left[-1,1]
          left[-1,1] = ''
      end
      if block_given?
        yield left
      else
        ary ||= []
        ary.push left
      end
    end
    ary
  end
end

str = 'aaaaaaaaああああああああaaaaaaaaaああああaaaaaaaあああ'
attrArray = []

puts str.jfold(12)

aaaaaaaaああ
ああああああ
aaaaaaaaaあ
あああaaaaaa
aあああ


--
新井康司 (Koji Arai)

In This Thread