1

我正在通过 selenium IDE 测试注册流程。我正在使用 REST 客户端获取数据并从获得的结果中提取特定信息(在我的代码 ID 中)。当我删除(对于删除方法)一段代码并重复它直到我得到 ID 时,我得到了 Index Out of bound Exception。我的代码如下所述:

StringBuffer s = new StringBuffer(value)
for(int x=0; x<value.length()-9;){
   int m = s.indexOf(value, x);
   int n = s.indexOf("},");
   s.delete(m, n);
   x += n+1;
}

我必须删除大括号块,直到在其他 ID 中找到特定的 ID 存在。

谢谢,Java初学者

4

1 回答 1

3

似乎该值不包含 in 的任何字符"},"s.indexOf("},")因此返回值为int n = s.indexOf("},");is -1,然后当您调用小于s.delete(m, n);的值时,该方法异常,因此您需要验证字符串是否包含或您可以跳过删除如果nmthrow new StringIndexOutOfBoundsException()value"},"(n != -1 && m != -1)

编码:

    StringBuffer s = new StringBuffer(value);
    for (int x = 0; x < value.length() - 9;) {
        int m = s.indexOf(value, x);
        int n = s.indexOf("},");
        if (n != -1 && m != -1) {
            s.delete(m, n);
        }
        x += n + 1;
    }

我不知道 and 的逻辑是什么value.length() - 9x += n + 1顺便说一下,如果你需要解析 Restful WebService 使用一些 API(例如 XML DOM 库、XPP、JSON)更好更容易,解析取决于响应类型 XML或 JSON。

于 2013-10-04T01:19:03.713 回答