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

remove brackets from returned string

我目前在我的 selenium 测试中调用 json,它们以 [4534535] 的形式返回,我想删除括号并只留下 4534535 但我目前使用的代码似乎没有那个,我找不到解决方案。

我目前正在使用

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

response_body_string 是我从 json 收到的(请不要有时会返回一个代码列表,这就是为什么我使用 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]", "");

如果我没猜错,您只想删除括号并只获取数字。您可以使用:

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

希望我没猜错。

编辑:

如果response_body_string是一个字符串(我假设是因为你使用的是字符串函数),你可以只对它做子串。像那样:

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

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

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

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

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