Java-大字符串需要使用不同的字段长度进行拆分

Java-大字符串需要使用不同的字段长度进行拆分,java,Java,我是Java新手,没有为我的场景找到任何精确的解决方案。我有一根1500长的大绳子 例如: 字符串inData=THISKALJSKAJFDSKJDKSJ KSJDLKJSFKD LSKJDFKSJ,ASA: 我有一个1500长度的固定格式。我必须根据每个字段的固定长度将字符串拆分为200多个字段。我发现了下面这样的东西 字符串firstFld=inData.substring0,2 字符串secondFld=inData.substring3,10 字符串thirdFld=inData.sub

我是Java新手,没有为我的场景找到任何精确的解决方案。我有一根1500长的大绳子

例如: 字符串inData=THISKALJSKAJFDSKJDKSJ KSJDLKJSFKD LSKJDFKSJ,ASA:

我有一个1500长度的固定格式。我必须根据每个字段的固定长度将字符串拆分为200多个字段。我发现了下面这样的东西

字符串firstFld=inData.substring0,2

字符串secondFld=inData.substring3,10

字符串thirdFld=inData.substring11,13

有谁能推荐一种更好的拆分方法,而不是声明200个字符串变量并将它们存储在那里或将它们加载到字符串数组中?我计划在获得这些字段后,用它们构建一个xml


我感谢你的帮助

好吧,如果是以下两种情况,那么这就行了:

字段长度有一个模式:比如0,2,3,10,11,13,14,21。。。 您有一个字段长度列表 在这两种情况下,解决您想要的问题非常简单:

第一种情况:模式是2个字符->以2开始的7个字符

String[] fields = new String[getNumberOfFields(1500)];
int curr = 0;
for(int i = 0 ; i < fields.length; i++) {
    if(i % 2 == 0) {
        fields[i] = inData.substring(curr, curr+7);
        curr+=8;
    } else {
        fields[i] = inData.substring(curr, curr+2);
        curr+=3;
    }
}
第二种情况:你有很多不同的字段长度

int curr = 0;
String[] fields = new String[fieldLengths.length];
for(int i = 0; i < fieldLengths.length; i++) {
     fields[i] = inData.substring(curr, curr+fieldLengths[i]);
}

使用长度为200的数组您可以将字符串拆分为数组或列表固定格式是什么?它是否存储在代码中的任何位置?在开始使用XML之前,可以尝试学习基本的数组、集合等。固定长度存储在文件中。我知道我可以将其添加到数组中。但如果还有其他更好的选择呢?我更新了这个问题,将字符串数组作为一个选项。但是,如果模式更复杂,我将以不同的方式实现它,具体取决于它的复杂程度和内容。