加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

JAVA中使用MessageFormat替换String中的占位符

(2015-02-02 13:22:08)
标签:

messageformat

分类: 技术
    在properties文件中我们可以使用占位符来进行动态的替换,例如在properties文件中我们配置了:
    
    JAVA中使用MessageFormat替换String中的占位符

    然后我们就可以获取"test.mesage"的配置,然后使用想要的值去替换{0}

    现在遇到的是一个JAVA的String值里需要动态去替换一些值,例如一个文件名的规则:
    12345678_20150130.txt

    "12345678_"  和".txt"都是固定的,但是红色标出的"20150130"却是动态的,值为当前的日期。如果需要获取这样规则的文件,就不能固定文件名,需要根据当前日期来进行拼接文件名。我们可以使用一个更简单的办法:使用MessageFormat类

    定义文件名为:12345678_{0}.txt,然后获取今天的日期,例如:20150130,然后使用
    MessageFormat.format方法去替换占位符

    JAVA中使用MessageFormat替换String中的占位符
    
    程序运行的结果是:
    JAVA中使用MessageFormat替换String中的占位符
    这样就达到了我们的目标了。

    还有2点需要注意:
    1. MessageFormat.format方法的第二个参数是一个数组,所以可以传多个参数进去
    JAVA中使用MessageFormat替换String中的占位符
    运行的结果是:
    JAVA中使用MessageFormat替换String中的占位符
    2. 如果传入多个参数,但实际需要替换的占位符没有那么多,程序并不会报错
    JAVA中使用MessageFormat替换String中的占位符
    
     上述程序中,只有一个占位符{0},但是MessageFormat.format方法传入的参数有2个,"20150130"和"haha",这种情况下,程序不会发生异常,结果还是将{0}替换为了"20150130"
     
     运行的结果是:
    JAVA中使用MessageFormat替换String中的占位符

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有