Java の文字列操作と言えば Apache Commons Lang の StringUtils をよく使いますが、文字列を指定の桁数で分割するメソッドは実装されていないようなので、やり方を書いておきます。
やりたいこと
分割対象文字列
「あいうえおかきくけこ」を指定した桁数で分割する。
ここでは 3 桁を指定することにします。
結果
「あいう」「えおか」「きくけ」「こ」
と要素が4つの配列を返却する。
ソースコード
分割するメソッド
public static List<String> splitByLength(String str, int length) {
List<String> strs = new ArrayList<>();
for (int i = 0; i < StringUtils.length(str); i += length) {
strs.add(StringUtils.substring(str, i, i + length));
}
return strs;
}
一部 Apache Commons Lang の StringUtils を使用しているところに注意して下さい。
呼び出し側
public static void main(String[] args) {
System.out.println(splitByLength("あいうえおかきくけこ", 3));
}
コンソール表示内容
[あいう, えおか, きくけ, こ]
おわりに
Apache Commons Lang の StringUtils を使用することで簡単に実装できました。Java 標準の String#substring でも実装できますが工夫しないと IndexOutOfBoundsException が出るので注意して下さい。
まぁそもそも、文字列を指定した桁数で分割するような固定長のデータを扱うシステムは根本的に設計を見直した方がいいと思う。
コメント