Java 不同长度的分裂字符串

Java 不同长度的分裂字符串,java,string,Java,String,我有一根长度为2000的绳子。它有固定的格式。我需要把它分成不同的长度。现在我正在使用String.substring()方法来实现同样的功能。我要分70次。有没有更好的办法 //代码 String rawString = "01304456789AGASTECH....."; String fisrtStr = rawString.substring(0,2); String secondStr = rawString.substring(2,8); String otherStr =

我有一根长度为2000的绳子。它有固定的格式。我需要把它分成不同的长度。现在我正在使用String.substring()方法来实现同样的功能。我要分70次。有没有更好的办法

//代码

 String rawString = "01304456789AGASTECH.....";
 String fisrtStr = rawString.substring(0,2);
 String secondStr = rawString.substring(2,8);
 String otherStr = rawString.substring(8,10); and so on

您可以查看
smooks
框架,它可以从逗号分隔或固定长度的字段“CSV”格式转换

这是本书的相关章节

少量样板代码,但定义字段列表(每个字段都有一个字符长度)和它们映射到的pojo相对容易


编辑:我在github上找到了一些。

您可以将拆分索引保存在列表或数组中,并使用循环对其进行迭代


另一种选择是在字符串中放入一个唯一的拆分ode,因此如果可能的话,可以使用拆分(uniqueCode)方法。

那么,您可以轻松编写一个助手方法:

static List<String> splitFixed(String s, int... sizes) {
    List<String> res = new ArrayList<>(sizes.length);
    int pos = 0;
    for (int size : sizes) {
        res.add(s.substring(pos, pos + size));
        pos += size;
    }
    return res;
}
static List splitFixed(字符串s、int…大小){
List res=新的数组列表(size.length);
int pos=0;
用于(整数大小:大小){
res.add(s.substring(pos,pos+size));
pos+=尺寸;
}
返回res;
}
然后,如果您有一些尺码,请拨打:

List<String> items = splitFixed("01ABC02", 2, 3, 2);   // returns [01, ABC, 02]
List items=splitFixed(01ABC02,2,3,2);//返回[01,ABC,02]
如果有很长的大小列表,请首先定义一个描述格式的静态最终数组:

final static int[] SIZES = { 2, 6, 2, ... };

//...

List<String> items = splitFixed(input, SIZES);
final static int[]size={2,6,2,…};
//...
列表项=拆分固定(输入,大小);

您需要拆分多少长度?之后您打算如何处理它?1.可以使用子字符串循环。2.您可以使用正则表达式来拆分它。你可能会发现这很有帮助:请定义“更好”。我需要将它拆分70次。我认为在这种情况下,“更好”相对来说是不言自明的。您希望能够在不使用
.substring(102122)
类代码的情况下提取字段,这类代码很容易出现手动错误,并且由于字段的数量,不太容易维护。