我是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个字符串变量并将它们存储在那里或将它们加载到String Array中吗?我计划在获取它们之后用所有这些字段构建一个xml。
感谢您的帮助!
答案 0 :(得分:1)
好吧,如果它是以下两个,那么这将起作用:
在这两种情况下,解决你想要的东西都非常简单:
第一种情况:模式是2个字符 - > 7个字符以2开头
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]);
}