JAVA編碼 —— 字符串關鍵字內容替換
阿新 • • 發佈:2019-04-04
equal ceo fir strong sem empty static png pre
前言
工作中,我們可能遇到字符串內容替換的場景。例如:我們需要將一個字符串凡是 “#” 標註的,分別替換為不同的內容,那我們應該怎麽做呢?
分析,一個字符串可能含有多個“#”,每個 “#”又對應不同的值,那麽我們需要替換的內容應該是一個不定的參數類型,要做這些離不開循環操作。
好了,做完以上的簡單分析,我們直接就可以進行編碼了。
/** * 字符串內容替換 * * @param str 要替換的字符串 * @param v 被替換的關鍵字 * @param args 要替換的內容 * @return */ publicstatic String strReplace( String str, String v, String... args) { if (!isEmpty(str)) { int n = 0; int a = args.length; while (str.contains(v)) { if (n >= a) { break; } str= str.replaceFirst( v, args[n] ); n++; } } return str; }
public static void main(String[] args) {
String str = "{\"v1\":\"#\",\"v2\":\"#\"}";
String s = strReplace(str, "#", "111", "222");
System.out.println(s);
}
中間有個 isEmpty 非空判斷方法:
/** * 判斷一個對象是否為空 * * @param obj 對象 * @return Boolean */ public static boolean isEmpty(Object obj) { if (obj instanceof String) { obj = obj.toString().trim(); } if (("").equals(obj) || null == obj || "null".equals(obj) || obj.equals(null)) { return true; } return false; }
輸出:
JAVA編碼 —— 字符串關鍵字內容替換