我正在通过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/