我正在通过Selenium IDE测试注册流程。我正在使用REST客户端来获取数据并从获得的结果中提取特定信息(以我的代码ID)。我正在删除(对于delete方法)一大段代码并重复执行,直到获得ID时,索引越界异常。我的代码如下:

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初学者

最佳答案

似乎该值在"},"中不包含任何s.indexOf("},")字符,因此,int n = s.indexOf("},");的返回值是-1,那么当您调用s.delete(m, n);时,n的值小于,方法m例外,因此,如果包含throw new StringIndexOutOfBoundsException(),则需要验证字符串value;如果"},",则可以跳过删除操作

代码:

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


我不知道(n != -1 && m != -1)value.length() - 9的逻辑是什么,顺便说一句,如果您需要解析Restful WebService,请使用一些API(例如XML DOM库,XPP,JSON)更好,更容易,解析取决于响应类型是XML还是JSON。

关于java - 从RESTClient获得的结果中解析特定数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19170959/

10-10 17:13
查看更多