0

私はString

String test = "7462356098660AE";

私はそれを次のように分割したいと思います:

test1 = "746";
test2 = "2356";
test3 = "0986";
test4 = "60AE";

文字列の長さはtest常に同じになります。

どうすればこれを行うことができますか?

PS:他の質問を確認しましたが、適切な答えが見つかりませんでした。

4

4 に答える 4

5
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);
于 2012-10-25T13:35:21.023 に答える
4

便宜上、この種の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));
于 2012-10-25T14:01:01.633 に答える
2

ここでのユースケースはわかりませんが、コードのサブストリングが常に同じ長さである場合は、substring()メソッドを使用できます。必要な部分文字列の開始インデックスと終了インデックスを指定するだけです。

于 2012-10-25T13:36:35.657 に答える
1

文字列が必要なすべてのフィールドに対して固定幅である場合は、Stringのsubstring / subSequenceメソッドを使用するか、正規表現を作成してキャプチャグループの値を取得することができます。

于 2012-10-25T13:35:10.793 に答える