这个问题让我几天感到沮丧。我正在使用字符串拆分来查找字符串的后半部分。这是我的代码:
String pieces[] = piece.split(before[x]);
piece = piece.split(before[x])[1];
在调试模式下,我确定piece =
<area shape="circle" coords="329,152,13" href="#g35" alt="" onmouseover="return overlib\('<b>Southeast False Creek</b><br>215 West 1st Avenue' , SNAPX, 20, SNAPY, 20\);" onmouseout="return nd\(\);"/>
和before[x] =
<area shape="circle" coords="329,152,13" href="#g35" alt="" onmouseover="return overlib\('<b>
出于某种原因,我收到ArrayIndexOutOfBounds
异常,split
说索引为1无效。我不知道为什么会这样,所以任何帮助都会非常感激!
答案 0 :(得分:2)
如果你试图让字符串的后半部分使用piece.split(before[x])[1]
并抛出异常,那么显然这意味着你的字符串数组piece.split(before[x])
没有第二个元素。你应该做的是尝试使用piece.split(Pattern.quote(before[x]))
,然后检查数组中的字符串数。
如果它超过1,那么你可以使用piece.split(Pattern.quote(before[x]))[1]
得到字符串的后半部分。
阅读本文以获取更多详细信息http://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html#quote(java.lang.String)
答案 1 :(得分:1)
String.split使用正则表达式将String拆分为多个部分。 “before [x]”包含常规特殊字符(即“\”),因此您需要转义这些特殊字符。 请参考http://www.regular-expressions.info/reference.html获取特殊字符列表