私はString
String test = "7462356098660AE";
私はそれを次のように分割したいと思います:
test1 = "746";
test2 = "2356";
test3 = "0986";
test4 = "60AE";
文字列の長さはtest
常に同じになります。
どうすればこれを行うことができますか?
PS:他の質問を確認しましたが、適切な答えが見つかりませんでした。
私はString
String test = "7462356098660AE";
私はそれを次のように分割したいと思います:
test1 = "746";
test2 = "2356";
test3 = "0986";
test4 = "60AE";
文字列の長さはtest
常に同じになります。
どうすればこれを行うことができますか?
PS:他の質問を確認しましたが、適切な答えが見つかりませんでした。
String test = "7462356098660AE";
String test1 = test.substring(0,3);
String test2 = test.substring(3,7);
String test3 = test.substring(7,11);
String test4 = test.substring(11,15);
便宜上、この種のSplitterクラスを作成できます。
public class Splitter {
private final int[] borders;
private final String s;
public Splitter(String s, int... borders) {
this.s = s;
this.borders = borders;
}
public String seg(int seg) {
return s.substring(seg == 0? 0 : borders[seg-1], borders[seg]);
}
}
次のように使用します。
final Splitter splitter = new Splitter("7462356098660AE", 3, 7, 11, 15);
for (int i = 0; i < 4; i++) System.out.println(splitter.seg(i));
ここでのユースケースはわかりませんが、コードのサブストリングが常に同じ長さである場合は、substring()
メソッドを使用できます。必要な部分文字列の開始インデックスと終了インデックスを指定するだけです。
文字列が必要なすべてのフィールドに対して固定幅である場合は、Stringのsubstring / subSequenceメソッドを使用するか、正規表現を作成してキャプチャグループの値を取得することができます。