0

这个问题让我沮丧了几天。我正在使用字符串拆分来查找字符串的后半部分。这是我的代码:

   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\('&lt;b>Southeast False Creek&lt;/b>&lt;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\('&lt;b>

出于某种原因,我得到一个ArrayIndexOutOfBounds例外,split说索引无效。我不知道为什么会这样,所以任何帮助将不胜感激!

4

2 回答 2

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 )

于 2012-06-09T05:53:47.497 回答
1

String.split 使用正则表达式将字符串拆分成片段。"before[x]" 包含常规的特殊字符(即 "\"),因此您需要对这些特殊字符进行转义。有关特殊字符列表,请参阅http://www.regular-expressions.info/reference.html

于 2012-06-09T07:41:19.490 回答