您可以使用正则表达式查找标记。假设输入格式正确,例如在xnum=
值之后有,
或}
:
String input = "{zjdb={fname=jbdjd,lname=ejdj,xnum=zjdb,email=ejdj},2jdb={fname=ij,lname=vji,xnum=2jdb,email=bbb}}";
Pattern p = Pattern.compile("[{ ]xnum=([^,}]+)[,}]");
Matcher m = p.matcher(input);
while (m.find()) {
String xnum = m.group(1);
System.out.println(xnum);
}
,
您可以使用正则表达式和一些替换项来清除文本。
例如,您可以拥有以下内容:
String str = "{zjdb={fname=jbdjd,email=bbb}}";
String[] result = str.replaceAll(".*?(xnum[^}]*).*","$1")
.replaceAll(",*",",")
.split(",");
for (String item : Arrays.asList(result)) {
System.out.println(item.split("=")[1]);
}
IdeOne demo
,
下面的代码给出您想要的输出。但是@Karol Dowbecki的方法更好。这段代码做同样的事情,但是没有正则表达式。
String input = "{zjdb={fname=jbdjd,email=bbb}}";
String[] b = input.split(",");
List<String> list = Arrays.stream(b).filter(s -> s.contains("xnum=")).collect(Collectors.toList());
List<String> finalList = new ArrayList<>();
for (String s : list) {
String x = s.replace("xnum=","");
finalList.add(x);
}
System.out.println(finalList);
本文链接:https://www.f2er.com/3156459.html