从返回的字符串中删除括号

时间:2019-07-02 13:59:51

标签: java json selenium testing ui-testing

我目前在我的硒测试中调用json,它们以[4534535]的形式返回,id想要删除方括号并仅保留4534535,但是我当前使用的代码似乎无法做到这一点,而且我找不到解决方案。

当前使用

String[] tmp = response_body_string.split("[\\[\\]]");
String val2 = tmp[0];
val3 = val2.replaceAll("[^0-9]", "");

response_body_string是香港专业教育学院从json收到的信息(请有时不返回返回的代码列表,这就是为什么im使用string []的原因。 但这似乎什么也没返回,是tmp [0]引起问题了吗?

我试图在另一个json中使用该代码,然后将字符串“ 4534535”传递给下一个。如果有多个代码编号,则无法使用该代码,例如[3343,221213]可以正常工作,因为我使用

String[] tmp = response_body_string.split(",");
tmp = tmp[1].split(",");
//Returns second game ID
String val2 = tmp[0];
val3 = val2.replaceAll("[^0-9]", "");

2 个答案:

答案 0 :(得分:1)

您接近最后一行的答案。您可以使用replaceAll()删除数字和逗号以外的所有内容,然后进行拆分。

    String[] tmp = response_body_string.replaceAll("[^0-9,]", "").split(",");

尽管我建议您将其解析为JSON,以避免任何不愉快的意外。例如,您可以使用fastxml的com.fasterxml.jackson.databind.ObjectMapper

        ObjectMapper mapper = new ObjectMapper();
        List<Integer> tmp = mapper.readValue(response_body_string, new TypeReference<List<Integer>>() {});

答案 1 :(得分:0)

如果我说对了,您只想去掉方括号并只得到号码。您可以使用:

String[] tmp = response_body_string.split("[\\[\\]]");
String tmp = tmp[0].substring(1,tmp.length-1);

希望我说对了。

编辑:

如果response_body_string是字符串(我假设是,因为您使用的是String函数),则可以对其进行子字符串操作。像这样:

String Final = response_body_string.substring(1,response_body_string.length-1);