Java 获取和替换字符串中 {} 包含的内容
Java 获取和替换字符串中 {} 包含的内容
系统:Win10
JDK:1.8.0_121
IDEA:2017.3.2
1.需求描述
给出一个字符串,用正则表达式去查找该字符串中的 {},并替换为自己需要的内容
2.功能实现
public class Test {
/*处理字符串获取{ }内的内容*/
public static void main(String[] args) throws Exception {
String url1 = "www.baidu.com/name={testName}?password={testPsw}"; // 目标字符串
String url2 = solveUrl(url1);
System.out.println("url1:" + url1);
System.out.println("url2:" +url2);
}
public static String solveUrl(String url) throws Exception { // 处理函数
int i = 0;
String[] strings = {"aa","bb","cc"}; // 用来替换的对象
String pattern = "\\{[^}]*\\}"; // 匹配{} 的表达式
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(url);
while(m.find()){ // 当字符串中有匹配到 {} 时
String param = m.group(0); // {} 和里面的内容
System.out.println(param.substring(1,param.length()-1)); // 输出{} 里面的内容
url = url.replaceFirst("\\{[^}]*\\}",strings[i]); // 替换 {} 和里面的内容
i++;
}
return url;
}
}
运行结果
3.总结
一般来说,只要我们善于使用正则表达式,替换这种功能是很容易实现的,当然这里只是举例一个最简单的例子,现实情况下可能还要考虑嵌套的问题,我们可以根据自己的需求变通。只要我们掌握了方法,去实现这些功能也不会困难。