我正在解析文件,有时我得到一个小行或大行。 如果线很小,是否可以在线附加额外的令牌?
这是我的程序
private static String[] LISTOFFIELDS = null;
String fields = "A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z";
String line = "OIUU||HHH|INBVC INB|PP|NN|OO|PPPPP||";
String[] totaltokens = line.split("\\|", LISTOFFIELDS.length);
private static HashMap<String, Object> ParsedValues(String[] totaltokens) {
HashMap<String, Object> map = new HashMap<String, Object>();
for (int i = 0; i < LISTOFFIELDS.length; i++) {
String fieldName = LISTOFFIELDS[i];
map.put(fieldName, totaltokens[i]);
}
}
如你所知,如果线条很小,我会得到
线程中的异常&#34; main&#34; java.lang.ArrayIndexOutOfBoundsException:10
这里我可以避免ArrayIndexOutOfBoundsException如果我将字符串字段减少到字符串字段=&#34; A | B | C | D | E | F | G | H |&#34 ;;
是否可以避免异常,而不对字符串字段进行任何修改?
答案 0 :(得分:1)
在分割并获取其子字符串之前检查字符串的长度。
答案 1 :(得分:0)
只需减少循环中的迭代次数:
int size = Math.min(LISTOFFIELDS.length, totaltokens.length);
for (int i = 0; i < size; i++) {
String fieldName = LISTOFFIELDS[i];
map.put(fieldName, totaltokens[i]);
}