String Index Out of Bounds Exception

时间:2011-07-16 09:05:04

标签: java exception indexoutofboundsexception

我真的坚持这个例外

private static void getUserComment(String s) {
    while(s.contains("author'>")){
        System.out.println(s.substring(s.indexOf("author'>"),
                                       s.indexOf("<div id='")));
        s = s.substring(0, s.indexOf("author'>")) +
                           s.substring(s.indexOf("<div id='"+9));

    } 
}

1 个答案:

答案 0 :(得分:3)

您应该使用正确的解析器或至少进行一些正则表达式模式匹配(对于HTML或XML已经“足够糟糕”)。

那就是说,9的“偏移”可能是例外的间接原因:

s.indexOf("<div id='"+9)

这将创建一个未找到的文字字符串<div id='9; indexOf然后返回-1,这会导致substring方法中的异常。也许你想要像这样在索引中添加9? s.indexOf("<div id='")+9

请注意,该函数无论如何都是无用的,更改s只会更改局部变量而不是原始变量(参数在Java中是按值)。