Java 獲取和替換字符串中 {} 包含的內容
Java 獲取和替換字符串中 {} 包含的內容
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.總結
一般來說,只要我們善於使用正則表達式,替換這種功能是很容易實現的,當然這裏只是舉例一個最簡單的例子,現實情況下可能還要考慮嵌套的問題,我們可以根據自己的需求變通。只要我們掌握了方法,去實現這些功能也不會困難。