MessageFormat对象实现格式化字符串输出,类似C#中的string.format方法

简介:       早在寻找java中类似string .format(str,args...)的方法来格式化字符串,前段时间在网上见过,确信有这种方法,但没有太注意!今天 在写代码中,突然要用到这个功能(方便的多),但一时想不起...

      早在寻找java中类似string .format(str,args...)的方法来格式化字符串,前段时间在网上见过,确信有这种方法,但没有太注意!今天 在写代码中,突然要用到这个功能(方便的多),但一时想不起来,但经过一番折腾,终于找到了,如下:    MessageFormate   

     因为工作的原因,经常使用C#,对于C#的String.Format()方法非常喜欢,能够格式化字符串,省掉了拼接字符串的烦恼,因而在想在java中有没有一个类似的功能呢?

早就知道Java有SimpleDateFormat这个类,可以格式化日期,查看Java API知道DateFormat 是SimpleDateFormat的父类,再追查下去,又发现DateFormat 的父类是java.text.Format
,而java.text.Format还有几个子类,其中一个就是java.text.MessageFormat,Java API对其描述如下:MessageFormate

public class MessageFormatextends Format MessageFormat 提供了以与语言无关方式生成连接消息的方式。使用此方法构造向终端用户显示的消息。

MessageFormat 获取一组对象,格式化这些对象,然后将格式化后的字符串插入到模式中的适当位置。

注:MessageFormat 不同于其他 Format 类,因为 MessageFormat 对象是用其构造方法之一创建的(而不是使用 getInstance 样式的工厂方法创建的)。工厂方法不是必需的,因为 MessageFormat 本身不实现特定于语言环境的行为。特定于语言环境的行为是由所提供的模式和用于已插入参数的子格式来定义的。

不管那么多,先试试再说吧。

第一个例子:

String item_ds="<input type=/"radio/" value=/"{0}/" name=/"{1}/" />{2}";

String temp=MessageFormat.format(item_ds, value,this.id+"group",text);

输出为:

<input type="radio" value="1" name="IMG7008CA8DB3DD42E08D322B1358D15093group" />黄修群

 还不过瘾?我再来两个:System.out.println (MessageFormat.format("Today is {0}",new Date()));  System.out.println (MessageFormat.format("My age is {0},I was borm at {1}.",26,1979));输出结果为:Today is 06-10-15 下午8:34My age is 26,I was borm at 1,979.(注意,我没有控制年份输出,所以按照西方的习惯1979编程了1,979了)。第二个方法用到了public static String format(String pattern,Object... arguments)这个方法,后面接受可变参数,不过有些疑惑的是它接受的是Object类型的参数,而我这里不是Object类型的参数,Java自动将其封装称它对应的数据类型,是不是很爽?

 

目录
相关文章
|
6天前
|
开发框架 .NET 程序员
C# 去掉字符串最后一个字符的 4 种方法
在实际业务中,我们经常会遇到在循环中拼接字符串的场景,循环结束之后拼接得到的字符串的最后一个字符往往需要去掉,看看 C# 提供了哪4种方法可以高效去掉字符串的最后一个字符
|
2月前
for循环和String类下方法的一个练习题
for循环和String类下方法的一个练习题
44 1
|
8天前
|
JavaScript 前端开发 API
javaScript中常用的String方法以及注意点总结
本文总结了JavaScript中常用的String对象的方法及其注意事项,包括大小写转换、字符获取、子字符串截取、字符串拼接、去除空格、替换、分割以及查找字符串中字符的索引等操作。提供了每种方法的使用示例代码,帮助理解它们的具体用法和差异。
22 2
|
2月前
|
JavaScript 算法 前端开发
JS算法必备之String常用操作方法
这篇文章详细介绍了JavaScript中字符串的基本操作,包括创建字符串、访问特定字符、字符串的拼接、位置查找、大小写转换、模式匹配、以及字符串的迭代和格式化等方法。
JS算法必备之String常用操作方法
|
2月前
|
XML Java API
List与String相互转化方法汇总
本文汇总了List与String相互转化的多种方法,包括使用`String.join()`、`StringBuilder`、Java 8的Stream API、Apache Commons Lang3的`StringUtils.join()`以及Guava的`Joiner.on()`方法实现List转String;同时介绍了使用`split()`方法、正则表达式、Apache Commons Lang3的`StringUtils.split()`及Guava的`Splitter.on()`方法实现String转List。
List与String相互转化方法汇总
|
24天前
|
C#
C#一分钟浅谈:Lambda 表达式和匿名方法
本文详细介绍了C#编程中的Lambda表达式与匿名方法,两者均可用于定义无名函数,使代码更简洁易维护。文章通过基础概念讲解和示例对比,展示了各自语法特点,如Lambda表达式的`(parameters) =&gt; expression`形式及匿名方法的`delegate(parameters)`结构。并通过实例演示了两者的应用差异,强调了在使用Lambda时应注意闭包问题及其解决策略,推荐优先使用Lambda表达式以增强代码可读性。
26 8
|
2月前
|
Java API 索引
【Java基础面试二十四】、String类有哪些方法?
这篇文章列举了Java中String类的常用方法,如`charAt()`、`substring()`、`split()`、`trim()`、`indexOf()`、`lastIndexOf()`、`startsWith()`、`endsWith()`、`toUpperCase()`、`toLowerCase()`、`replaceFirst()`和`replaceAll()`,并建议面试时展示对这些方法的熟悉度,同时深入理解部分方法的源码实现。
【Java基础面试二十四】、String类有哪些方法?
|
2月前
|
数据安全/隐私保护
作用域通信对象:session用户在登录时通过`void setAttribute(String name,Object value)`方法设置用户名和密码。点击登录按钮后,跳转到另外一个页面显示用户
该博客文章通过示例演示了如何使用session对象的`setAttribute`和`getAttribute`方法在不同页面间传递和显示用户的用户名和密码信息,并说明了如何设置会话的有效期。
作用域通信对象:session用户在登录时通过`void setAttribute(String name,Object value)`方法设置用户名和密码。点击登录按钮后,跳转到另外一个页面显示用户
|
9天前
|
Java 索引
java基础扫盲-String类常用的方法
java基础扫盲-String类常用的方法
|
2月前
|
Java 索引
Java系列之 String indexOf() 方法
文章详细介绍了Java中`String`类的`indexOf()`方法的四种不同形式及其用法,包括查找字符和子字符串在字符串中的索引,并提供了相应的实例代码和输出结果。