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()method。你只需给它你想要的子字符串的开始和结束索引。

于 2012-10-25T13:36:35.657 回答
1

如果字符串对于您想要的所有字段的宽度都是固定的,您可以使用 String 的 substring/subSequence 方法,或者您可以创建正则表达式并获取捕获组的值。

于 2012-10-25T13:35:10.793 回答