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;
    }

输出:

 

posted @ 2019-04-04 19:05  xu_shuyi  阅读(1283)  评论(0编辑  收藏  举报