使用字符subString操作的時(shí)候壹士,經(jīng)常會(huì)出現(xiàn)一個(gè)String index out of range: -1,這個(gè)是典型的下標(biāo)越界,其實(shí)位置小于0一铅,結(jié)束位置大于字符長(zhǎng)度都會(huì)報(bào) -1 這個(gè)異常。
-2這個(gè)異常就比較少見(jiàn)了堕油,但是可以確定潘飘,它是和-1不同的異常,但是同樣發(fā)生在subString方法里面掉缺;
這個(gè)異常挺難觸發(fā)的卜录,但是遇見(jiàn)了挺尷尬的。
答案就是subString(startIndex,endIndex)的時(shí)候眶明,end比start小了艰毒;
至于為什么會(huì)出現(xiàn)end比start小的情況,就需要排查了搜囱,可能兩個(gè)參數(shù)都是indexOf來(lái)的丑瞧,但是字符有點(diǎn)小問(wèn)題;
eg:
Elements tds = doc.select(".content1").select("table").select("tbody").select("tr").select("td");
Map<String, String> map = new HashMap<>();
for (int i = 0; i < tds.size(); i++) {
String td = tds.get(i).text();
if (!td.equals("") && td != null) {
map.put(td.substring(2, td.indexOf(":")), td.substring(td.indexOf(":")+1).trim());
}
}
注意中英文蜀肘,全角半角