先来个demo

String string = "{0}\"{1}\"";
System.out.println(MessageFormat.format(string, "test","justfortest"));

这个代码片段说明了MessageFormat的简单用法,比较方便,省去了我们的字符串的拼装。

MessageFormat.format(String partten,Object... params)  api简介

partten 为“各种文字{0}加上占位符{1}”,其中{num}是占位符,和params 位置对应

但是MessageFormat 也不是万能的,她也会出错看看一下代码,猜猜结果

	String a = "<li><div class='icon'> <em class={0}></em> </div>"
+ "<div class='txt'>"
+ "<p>{1}</p>"
+ " <p><a href='javascript:void(0)' onclick='downAttachment('{2}',this)'>预览</a></p></div><p class='clear'></p> </li>";
System.out.println(MessageFormat.format(a, "one","two","three"));

结果让人吃惊:

<li><div class=icon> <em class={0}></em> </div><div class=txt><p>two</p> <p><a href=javascript:void(0) onclick=downAttachment(three,this)>预览</a></p></div><p class=clear></p> </li>

说明:以上代码是公司action中的代码,这样的代码真的很垃圾,action中怎么能有 前台页面的代码呢,耦合性高,维护困难,通用性差,各种不方便;但是没有办法,这种垃圾代码还是要维护的,以前用的是string 拼接,换种方式,用了MessageFormat.

为什么{0} 没有被替换掉呢??

大家用的时候要小心啊,具体原因,等吃过饭查查,在此做个记录

java MessageFormat 应用 和 疑惑的更多相关文章

  1. java MessageFormat.format 用法

    FormatElement: { ArgumentIndex }:是从0开始的入参位置索引. { ArgumentIndex , FormatType } { ArgumentIndex , Form ...

  2. Java语法基础常见疑惑解答

    1. 类是java的最小单位,java的程序必须在类中才能运行 2. java函数加不加static有何不同 java中声明为static的方法称为静态方法或类方法.静态方法可以直接调用静态方法,访问 ...

  3. java MessageFormat.format

    sql 语句中格式化,如果加入{}占位符,要替代的是整形变量,而恰好这个整形变量的位数超过4位, MessageFormat.format 会在这个整形变量中默认每隔三位加一个逗号,类似这样:1000 ...

  4. java学习中一些疑惑解答(2)

    (一)继承条件下构造方法的调用 以下面的源代码为例: package ktdemo; class Grandparent { public Grandparent() { System.out.pri ...

  5. Java语法基础常见疑惑解答8,16,17,21图片补充

    8. 16. 17. 21

  6. javaweb学习总结(六)——Servlet开发(三) 常见问题疑问

    [1]response.getWriter().write()与out.print()的区别http://blog.csdn.net/javaloveiphone/article/details/81 ...

  7. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  8. 关于java中MessageFormat.format中单引号问题

    我们知道java中可以用MessageFormat.format来格式化字符串.这个方法在我们的实际开发中经常用到,有点类似模板,这样我们就不需要用很恶心的拼接字符串了.如下面 String s1=& ...

  9. 【java消息格式化】使用MessageFormat进行消息格式化

    主要介绍了: 消息格式化的基本使用: 格式化:匹配数字: 格式化:匹配日期: 格式化:匹配时间: 格式化:多次匹配: MessageFormat用来格式化一个消息,通常是一个字符串.MessageFo ...

随机推荐

  1. 工欲善其事必先利其器之Xcode高效插件和舒适配色

    功能强大的Xcode再配上高效的插件,必会让你的开发事半功倍.直接进入正题. Xcode插件安装方式: 1.github下载插件然后用xcode打开运行一遍,然后重启xcode. 2.安装插件管理Al ...

  2. Flume研究心得

    最近两天,仔细的看了一下Flume中央日志系统(版本号:1.3.X),Flume在本人看来,还是一个非常不错的日志收集系统的,其设计理念非常易用,简洁.并且是一个开源项目,基于Java语言开发,可以进 ...

  3. 24种设计模式--工厂方法模式【Factory Method Pattern】

    女娲补天的故事大家都听说过吧,今天不说这个,说女娲创造人的故事,可不是“造人”的工作,这个词被现代人滥用了. 这个故事是说,女娲在补了天后,下到凡间一看,哇塞,风景太优美了,天空是湛蓝的,水是清澈的, ...

  4. laravel5验证码

    首先呢在laravel5中默认是没有提供验证码的,这里我们需要使用第三方提供的库:gregwar/captcha 通过composer安装: 在composer.json的require中加入&quo ...

  5. 检测js代码是否已加载的判断代码

    该方法不局限于jQuery的检测,对与任何Javascript变量或函数都是通用的. 当前网页加载jQuery后,jQuery()或$()函数将会被定义,所以检测jQuery是否已经加载存在以下2种方 ...

  6. utf8汉字编码16进制对照

           utf8汉字编码16进制对照  GB    Unicode  UTF-8     Chinese Character Code  code# Code      (coded in UT ...

  7. MVC架构模式

    MVC是一个框架模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型.视图.控制器. V页面传递数据给C,C调用模型处理返回数据给V 最典型的MVC就是JSP ...

  8. 工作总结:MFC调用Windows自带新建、保存对话框代码

    保存: void CExample17Dlg::OnBnClickedSaveButton() { // TODO: Add your control notification handler cod ...

  9. [BZOJ 2165] 大楼 【DP + 倍增 + 二进制】

    题目链接:BZOJ - 2165 题目分析: 这道题我读了题之后就想不出来怎么做,题解也找不到,于是就请教了黄学长,黄学长立刻秒掉了这道题,然后我再看他的题解才写出来..Orz 使用 DP + 倍增 ...

  10. The Wedding Juicer

    poj2227:http://poj.org/problem?id=2227 题意:给你一块矩形区域,这个矩形区域是由一个个方格拼起来的,并且每个方格有一个高度.现在给这个方格灌水,问最多能装多少水. ...