MessageFormat.format 字符串的模板替换

简介: 项目目前在消息的模版,模版中需要替换很多参数,比方说“用户名”,“日期”等等。不过目前没有想到更好的替换参数的方法,所以目前只能使用一个比较简单的方式来实现。这个方式太死板,参数对应必须要在代码中写死,若是在模版中多加一个参数,那么就要修改Java类中的代码,非常不好。
项目目前在消息的模版,模版中需要替换很多参数,比方说“用户名”,“日期”等等。不过目前没有想到更好的替换参数的方法,所以目前只能使用一个比较简单的方式来实现。
这个方式太死板,参数对应必须要在代码中写死,若是在模版中多加一个参数,那么就要修改Java类中的代码,非常不好。临时凑合一下,以后想到更好的方式,在来实现。
以下为代码实现: 其实这个实现就是使用了MessageFormat这个类; String content
= "ab,cc,{名称},{密码},{日期},dd,ff"; String array[] = {userName, password, format.format(new Date())}; content = MessageFormat.format(content, array);
解释如下: content 中需要被替换的就是{}中的参数,array数组中存放的是对应的要替换的参数;使用MessageFormat方法的时候,需要要将这些参数的个数匹配正确,
并且数序要指定,否则匹配出错。这样就实现了参数的替换。很简单,也很死板。 MessageFormat:出自java.text包中;

 

具体代码如下:

package org.xiaowu.json.demo;

import java.text.MessageFormat;

import org.junit.Test;

public class MessageFormatDemo {
    
    @Test
    public void Test(){
        StringBuilder sb=new StringBuilder();
        sb.append("    insert into test_tb (");
        sb.append("        createTime, ");
        sb.append("        datefrom, ");
        sb.append("        dateto, ");
        sb.append("        name, ");
        sb.append("        intranetid, ");
        sb.append("        actualhour, ");
        sb.append("        planhour, ");
        sb.append("        status");
        sb.append("    ) values (");
        sb.append("        ''{0}'',");
        sb.append("        ''{1}'',");
        sb.append("        ''{2}'',");
        sb.append("        ''{3}'',");
        sb.append("        ''{4}'',");
        sb.append("        ''{5}'',");
        sb.append("        ''{6}'',");
        sb.append("        ''{7}''");
        sb.append("    )");
        String result=sb.toString();
        
        Object[] arr={"20170520","王五","张三","李四","111","222","333","ok"};
        String sql=MessageFormat.format(result, arr);
        System.out.println("sql:"+sql);
    }
    
}

运行结果:

INSERT INTO test_tb (
    createTime,
    datefrom,
    dateto,
    NAME,
    intranetid,
    actualhour,
    planhour,
    STATUS
)
VALUES
    (
        '20170520',
        '王五',
        '张三',
        '李四',
        '111',
        '222',
        '333',
        'ok'
    )

 

相关文章
|
15天前
String字符串的替换 生成新的字符串
String字符串的替换 生成新的字符串
17 0
|
2月前
|
Python
Python字符串和字节不要混淆str.format()和bytes.format()
【5月更文挑战第6天】Python字符串和字节不要混淆str.format()和bytes.format()
15 1
|
9月前
|
索引 Python
format格式化输出语法详解
hello,这里是Token_w的文章,主要讲解python的基础学习,希望对大家有所帮助 整理不易,感觉还不错的可以点赞收藏评论支持,感谢!
64 0
|
开发者 Python
字符串的 format 方法|学习笔记
快速学习字符串的 format 方法
110 0
|
Java
JAVA字符串格式化-String.format()的使用
JAVA字符串格式化-String.format()的使用
124 0
JAVA字符串格式化-String.format()的使用
|
Java 数据库
Java字符串format-用户号补齐格式化应用
Java字符串format-用户号补齐格式化应用
274 0
String.format()字符串常规类型格式化!
String.format()字符串常规类型格式化的两种重载方式
280 0
string.replace 用变量替换
string.replace 用变量替换
146 0
【转载】format的用法。
以前没太注意这个用法,到网上找一个,copy过来,方便以后的查看。   "I see stuff like {0,-8:G2} passed in as a format string. What exactly does that do?" -- Very Confused String Fo...
884 0