我有以下代码来解决需要删除简单json标记的情况:
String inputExample = "[\"883-DDEQW\"]";
inputExample = inputExample.replaceAll("]", "");
inputExample = inputExample.replaceAll("\\[", "");
inputExample = inputExample.replaceAll("\"", "");
inputExample = inputExample.replaceAll("\\\\", "");
,使生成的字符串成为所需的:883 ddeqw
所以需要4行代码来执行替换。有没有更简单(或者我应该说更简洁)的方法来执行相同的操作?
谢谢!
2条答案
按热度按时间i7uq4tfw1#
您可以将要替换的所有字符放入一个字符类:
作为java字符串:
你可以把这个传给我
replaceAll
:axkjgtzd2#
您可以匹配所需的输出,而不是删除不需要的字符。在你的情况下,似乎是字母,数字和
-
. 所以模式可能是这样的:[\w\d-]+
```@Test
public void testRegexp(){
final Pattern pattern = Pattern.compile("([\w\d-]+)");
final String inputExample = "["883-DDEQW"]";
final Matcher matcher = pattern.matcher(inputExample);
if (matcher.find()) {
System.out.println(matcher.group());
}
}
@Test
public void testJson(){
final String inputExample = "["883-DDEQW"]";
JsonArray jsonArray = new JsonParser().parse(inputExample).getAsJsonArray();
for (final JsonElement element: jsonArray){
System.out.println(element.getAsString());
}
}