//filename 1.xml
<category
hello world
</category>
//when iam trying to parse this file using the following code it throws String index out of range: -1
output: startPos: -1
endPosi: -1
String dataLine = nextLine.trim();
int startPos = dataLine.indexOf(startToken);
logger.debug("startPos: " + startPos);
int endPosi = dataLine.lastIndexOf(endToken);
logger.debug("endPosi: " + endPosi);
// 2.xml it parses this file which contains the following line
<category hello world </category>
//这两个文件之间的唯一区别是第一个文件的内容分为三行,第二个文件的内容在一行中。
答案 0 :(得分:1)
将输入文件更改为:
<category>
hello world
</category>
然后你的开始标记为:
String startToken = "<category>";
您遇到的一个问题是<category
是无效的XML。 .trim()
正在剥离第一个文件第一行的尾随空格。简短回答:修复XML。
答案 1 :(得分:0)
答案 2 :(得分:0)
int startPos = dataLine.indexOf(startToken);
我认为dataLine字符串中没有startToken,因此返回-1;
如果字符串参数作为此对象中的子字符串出现,那么 第一个这样的子串的第一个字符的索引是 回;如果它不作为子字符串出现,则返回-1。