文字列を分割するクラスについて
住所のメソッドでの開発についてご質問がございます。
仕様
住所の配列は全角80(半角160)に格納される。
住所地名の途中で分割しないようにする。
80桁すべてに文字は格納されているときは20桁の4等分にする。
スペースで分割をおこなうようにする。
例1 実行前 札幌市 ○区 北○○○○○ 00-0-0-00
実行後 札幌市 ○区 北○○○○○,00-0-0-00,,
例1の場合20桁ずつ分割を考えると14桁目のスペースを利用してカンマ区切りで4つに分割
例2 実行後 あああああ いいいいい ううううう ええ
実行後 あああああ いいいいい ううううう ええ,,,
例2の場合文字がちょうど20桁なのでちょうどカンマ区切りで4等分
例3 実行前 あああああ いいいい ううううううううううう えええええ 0-00-000
実行後 あああああ いいいい,ううううううううううう えええええ,0-00-000,
例3の場合20文字だと区切りだと、うの領域の途中になるため
11桁目のスペースを利用して分割
そしてそこから20桁目を区切ろうとして次の区切りたい場所が
番地の途中になるため実行後のように、えで区切り4等分にカンマ区切り
と基本的に住所分割をスペースを利用して住所の途中や番地の途中で
区切らないでカンマ区切りの4等分にするアルゴリズムを考えています。
private void 住所漢字(String 住所漢字, String 住所カナ, String 住民票住所漢字,PrintWriter out) {
//(1)分割する文字列を生成
String str = new String(住所漢字);
//(2)文字列をsplitメソッドで分割
String[] strAry = str.split(",", 0);
{
str = 住所漢字;
}
for (int i=0; i<strAry.length; i++) {
}
out.print(str.substring(0,20)+","+ str.substring(20,40)
+","+ str.substring(40,60)+","+ str.substring(60,80));
}
現在は単純に全角80桁の配列に対して
20桁ずつの4等分に実行されるだけのプログラムになってます。
上記の例のような住所分割のアルゴリズムを開発する際
StringTokenizer st = new StringTokenizerのクラスは開発に有効でしょうか?
また有効である場合のソース実行例の等のアドバイス、もしくは
ほかに文字を分割するための便利なクラスがございましたら
ご教授ください。
どうぞよろしくお願いいたします。
お礼
有難うございます。ばっちり出来ました。 両方の方法を試してみましたがこの場合はsubstrが有用と分かりました。 どうも有難う御座いました!!