给一个字符串,如“abc{aaa}qwe{bbb}daw{ccsc}asdasd”,写程序,输出所有{}间的内容:aaa bbb ccsc
这里介绍两种方法,第一种最好理解应该属于暴力的一种吧,第二中使用序列化的解法
@Test
public void demo1() {
String a = "abc{aaa}qwe{bbb}daw{ccsc}asdasd";
getStrs(a);
getStrContainData(a, "{", "}");
}
//暴力截取
public void getStrs(String str) {
String[] strs = str.split("\\{");
System.out.println("第一种解法:");
for (String s : strs) {
if (s.indexOf("}") > -1) {
System.out.println(s.substring(0, s.indexOf("}")));
}
}
}
//序列化
public void getStrContainData(String str, String start, String end) {
start = "\\" + start;
end = "\\" + end;
String regex = start + "(.*?)" + end;
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
System.out.println("第二种解法:");
while (matcher.find()) {
String key = matcher.group(1);
System.out.println(key);
}
}
结果: