2009/02/25

文字列を指定されたバイト数で分割 どう書く?orgをといてみた

文字列を指定されたバイト数で分割 どう書く?orgといてみた

def splitBytes( text, size, charset ){
    def list = []
    text.each{
        if( list.empty || (list[-1] + it).getBytes(charset).size() > size )
            list << ""
        list[-1] += it
    }
    list
}

// テスト
assert splitBytes("あいうえおabcdeかきくけこfghij", 10, "SJIS") == ["あいうえお", "abcdeかき", "くけこfghi", "j"]
assert splitBytes("あいうえおabcdeかきくけこfghij", 10, "UTF-8") == ["あいう", "えおabcd", "eかきく", "けこfghi", "j"]

ちょっとロジックが強引な気もする。

0 件のコメント:

コメントを投稿