我正在通过 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;
}
我必须删除大括号 block ,直到我在其他 ID 中找到特定 ID。
谢谢, Java 初学者
最佳答案
在 s.indexOf("},")
中似乎该值不包含任何 "},"
字符,因此 的返回值code>int n = s.indexOf("},");
是-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
和x += n + 1
的逻辑是什么,顺便说一句如果你需要解析Restful WebService 使用一些 API(例如 XML DOM 库、XPP、JSON)更好更容易,解析取决于响应类型是 XML 还是 JSON。
关于java - 从 RESTClient 获取的结果中解析具体数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19170959/