-2

私は本当にこの例外に固執しています

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));

    } 
}
4

1 に答える 1

3

適切なパーサーを使用するか、少なくとも正規表現のパターン マッチングを行う必要があります (これは、HTML や XML では既に「十分に不十分」です)。

つまり、9 の「オフセット」は、例外の間接的な原因である可能性があります。

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

<div id='9これにより、見つからないリテラル文字列が作成されます。indexOf次に -1 を返し、これによりsubstringメソッドで例外が発生します。このように実際にインデックスに 9 を追加したかったのではないでしょうか?s.indexOf("<div id='")+9

とにかく関数は役に立たないことに注意してください。変更sするとローカル変数のみが変更され、元の変数は変更されません(パラメータはJavaでは値によるものです)。

于 2011-07-16T09:11:41.290 に答える