我正在通过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初学者
答案 0 :(得分:3)
似乎该值在"},"
中不包含s.indexOf("},")
的任何字符,因此int n = s.indexOf("},");
的返回值为-1
,然后当您调用{{}时1}} s.delete(m, n);
的值小于n
,之后方法m
异常,所以如果包含throw 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;
}
和value.length() - 9
的逻辑是什么,顺便说一句,如果你需要解析Restful WebService,使用一些API(例如XML DOM库,XPP,JSON)会更好而且更简单,解析取决于XML或JSON的响应类型。