制限バイト数で日本語文字列を分割する | ヘビィ・SMD!

ヘビィ・SMD!

そんな・・・バナナ!!
1. 甘え度+10 恐れ度+10 寿命-1週間
2. 甘え度+10 恐れ度-10
3. 甘え度-10 恐れ度-10 寿命+1週間

基幹システム連携等を行う場合、バイト長が制限されていて出力フィールドを分割しなければいけないケースがある。
例えば、こっちが持ってるシステムでは住所情報をAddress(100Byte)に対し、
基幹側はAddress1(40Byte)、Address2(40Byte)、Address3(40Byte)といった感じ。
そして、日本では「半角は1Byte、全角は2Byte」であることが多い。
半角と全角が混ざった情報は単純な文字数分割では対応できないので独自のutilを作る必要がある。

作ってみた。

/** スクリプトが読み込めないためコード非表示 **/


入力文字列をlimitバイト数で分割するメソッドです。
文字のエンコードをSJISにしているが適宜システムに合わせて変える必要がある。
limitを1とかにすると無限ループに入ってしまうので、本当は独自のExceptionクラスをこさえるべきだけどここでは割愛。