JAVA编码 —— 字符串关键字内容替换
前言
工作中,我们可能遇到字符串内容替换的场景。例如:我们需要将一个字符串凡是 “#” 标注的,分别替换为不同的内容,那我们应该怎么做呢?
分析,一个字符串可能含有多个“#”,每个 “#”又对应不同的值,那么我们需要替换的内容应该是一个不定的参数类型,要做这些离不开循环操作。
好了,做完以上的简单分析,我们直接就可以进行编码了。
/** * 字符串内容替换 * * @param str 要替换的字符串 * @param v 被替换的关键字 * @param args 要替换的内容 * @return */ public static 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; }
输出: