【转载】MessageFormat.format方法
MessageFormat.format方法实例
public static void main(String[] args) {
String a= "aaa";
String b= "bb";
String c= "c";
StringBuilder sb = new StringBuilder();
sb.append(a).append(b).append(c);
System.out.println(MessageFormat.format(" {0} {1} {2} {3}", a, b,"",sb));
System.out.println(MessageFormat.format(" ''{0}'' '{1}' {2} {3}", a, b,"",sb.toString()));
}
运行结果
aaa bb aaabbc
'aaa' {1} aaabbc
总结1:
1、MessageFormat.format是根据顺序和占位符来对应插入的,所以第一行a,b都替换输出了本身的值,第三个是个空白替换为空白不显示,sb是StringBuilder拼接后的结果。
2、第二行如果替换后需要加上单引号,'aaa'这样的,就需要在占位符上面对应加上两个单引号,这样才能准确转化为相应,如果加上一个单引号,结果就不会替换,最后输出是占位符本身{1},第三个还是空白。
3、StringBuilder.toString后输出和不toString结果一样
对于
String d = null;
System.out.println(MessageFormat.format(" {0}", d));
运行结果
null
对于
System.out.println(MessageFormat.format(" {0}", StringUtils.defaultIfBlank(d,"结果")));
运行结果
结果
总结2:
1.如果最后结果想加上一个单引号,就需要在相应占位符上加上两个单引号,才能准确转换。
2.如果传入的参数为null,会自动替换为null。如果想替换为空白或者其他的字符,可以使用StringUtils.defaultIfBlank(d,"结果") 替换
3.少用StringBuilder的toString 每次调用toString方法,会重新new一个String出来。在java.lang.String的代码中,value并不是直接指向的,而是通过系统拷贝函数进行的内存操作,如果toString太多的话,CPU会一直忙于进行内存的分配工作,会导致机器的load过高。
【转载】MessageFormat.format方法的更多相关文章
- Java魔法堂:初探MessageFormat.format和ChoiceFormat
一.前言 刚开始从.net的转向java的时候总觉得 String.format 用得不习惯,希望格式模版会这样 {}, }$s,$s's cat.%2$s,this is %1$s's dog. . ...
- MessageFormat.format处理单引号和大括号
在MessageFormat.format方法中组装jason数据字符串:{code:"w1",des:"w2"},起止分别有左大括号和右大括号.方法是将单引号 ...
- java MessageFormat.format 用法
FormatElement: { ArgumentIndex }:是从0开始的入参位置索引. { ArgumentIndex , FormatType } { ArgumentIndex , Form ...
- MessageFormat.format()用法
1.java.text.Format的继承结构如下 2.MessageFormat模式 FormatElement { ArgumentIndex }:是从0开始的入参位置索引 { Argumen ...
- Java中利用MessageFormat对象实现类似C# string.Format方法格式化
我们在写C#代码的时候常常会使用到string.Format("待格式化字符串{0},{1},....",参数1,参数2,...),来格式化字符串,特别是拼接字符的时候,这种方式使 ...
- java基础---->String和MessageFormat的format方法
这里介绍一下String和MessageFormat中的format方法的差异以及实现原理. String与MessageFormat的说明 一.两者的使用场景 String.format:for l ...
- MessageFormat理解,MessageFormat.format(Object obj)方法
MessageFormat.format(Object obj)方法主要用途为拼接message信息 用法: Object[] testArgs = {new String("张三" ...
- 关于java中MessageFormat.format中单引号问题
我们知道java中可以用MessageFormat.format来格式化字符串.这个方法在我们的实际开发中经常用到,有点类似模板,这样我们就不需要用很恶心的拼接字符串了.如下面 String s1=& ...
- MessageFormat.format用法
用法一: package gacl.request.study; import java.io.IOException; import java.text.MessageFormat; import ...
随机推荐
- layer —— 一个简单的jQuery弹出层插件
layer的使用 4.24更新:注意:layer现在有旧版1.8.5版本和新版本3.0版本的,对应引入的JQ也要不同,相对应的JQ引入1.1和3.1,否则JQ会出问题 4.21更新: 解答4-19的问 ...
- ARM LCD屏调试3--屏的应用编程
2011-06-25 19:20:47 驱动自己写完了,应用函数自己就不写了,找了一点代码参考,移植并修改了一下,配合之前的定义的接口文档,我贴出部分代码.目录: 一,开发环境... 1 二,底层函数 ...
- css3 box-flex
应用地址:http://www.jb51.net/css/467291.html box-flex是css3新添加的盒子模型属性,它的出现打破了我们经常使用的浮动布局,实现垂直等高.水平均分.按比例划 ...
- webviewplugin
https://blog.csdn.net/qq_39197547/article/details/85007418 https://www.cnblogs.com/pjl43/p/9866753.h ...
- mybatis的collection查询问题以及使用原生解决方案的结果
之前在springboot+mybatis环境的坑和sql语句简化技巧的第2点提到,数据库的一对多查询可以一次查询多级数据,并且把拿到的数据按id聚合,使父级表和子级表都有数据. 但是这种查询,必然要 ...
- ionic 实现 应用内(webview中html页面点击) 和 应用外 (浏览器html页面点击) 打开本地安装应用
应用内(webview中html页面点击) : 应用内打开本地安装应用指的是webview里打开应用,需要2个步骤: 1: 需要下载一个cordova插件:com.lampa.startapp ,也可 ...
- 基于OpenCV做“三维重建”(2)--封装标定过程
既然已经能够找到了标定点,那么下边的工作就是使用标定结果了.[这本书在这里的内容组织让人莫名其妙]但是通过阅读代码能够很方便地串起来. /*------------------------------ ...
- caffe特征层可视化
#参考1:https://blog.csdn.net/sushiqian/article/details/78614133#参考2:https://blog.csdn.net/thy_2014/art ...
- 关于html中的 script标签中的 代码写法有效性? easyui tabs的href不能载入内容页面
script标签, 即 html中的 js脚本区域中: 它其实就是一个 普通的 html标签, 在 html 渲染器 parser 看来, 它跟其他任何的普通 的 html标签 , 比如 p 标签, ...
- 创建您的 ActiveReports Web端在线报表设计器
概述 ActiveReports Web端在线报表设计器已经正式上线!看到它这么帅气.实用,你是不是也想自己动手创建一个? 现在我们就来教您,如何创建一个简单的 ActiveReports Web端在 ...