繁体   English   中英

Java-大字符串需要拆分为不同的字段长度

[英]Java - Large String need to split with different field length

我是Java的新手,没有找到适合我的方案的确切解决方案。 我有一个大的字符串,长度为1500。

例如: String inData = "THISKALJSKAJFDSKJDKSJ KSJDLKJSFKD LSKJDFKSJ, ASA:..";

我对这1500个长度有固定的格式。 我必须根据每个字段的固定长度将字符串分成200多个字段。 我发现类似下面的内容。

String firstFld = inData.substring(0, 2);

String secondFld = inData.substring(3, 10);

String thirdFld = inData.substring(11, 13);

任何人都可以提出更好的拆分方法,而不是声明200个字符串变量并将其存储在其中或将其加载到字符串数组中吗? 我计划在获取所有这些字段后构建一个xml。

感谢您的帮助!

好吧,如果是以下两个,那么这将起作用:

  1. 字段长度有一个模式:像(0,2),(3、10),(11,13),(14、21)...
  2. 您有一个字段长度列表

在这两种情况下,解决您想要的东西都非常简单:

第一种情况:模式是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]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM