我有一串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发布于 2016-03-31 12:25:53
您可以查看smooks框架,它可以从逗号分隔或固定长度字段"CSV“格式转换。
以下是用户指南中的相关部分。
模板代码数量不多,但是定义字段列表(每个字段都有一个字符长度)和它们映射到的pojo相对容易。
编辑:我在github上找到了一些小吻-例子。
发布于 2016-03-31 12:26:17
您可以将拆分的索引保存在一个列表或数组中,并使用一个循环遍历它。
另一种选择是将唯一的拆分代码放入字符串中,以便在可能的情况下可以使用拆分(UniqueCode)方法。
发布于 2016-03-31 12:55:56
那么,您可以轻松地编写一个助手方法:
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;
}然后,如果您有一些大小,打电话:
List<String> items = splitFixed("01ABC02", 2, 3, 2); // returns [01, ABC, 02]如果您有很长的大小列表,那么首先定义一个描述您的格式的静态最终数组:
final static int[] SIZES = { 2, 6, 2, ... };
//...
List<String> items = splitFixed(input, SIZES);https://stackoverflow.com/questions/36333335
复制相似问题