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自动将其封装称它对应的数据类型,是不是很爽?

 

目录
相关文章
|
2月前
|
开发框架 .NET 程序员
C# 去掉字符串最后一个字符的 4 种方法
在实际业务中,我们经常会遇到在循环中拼接字符串的场景,循环结束之后拼接得到的字符串的最后一个字符往往需要去掉,看看 C# 提供了哪4种方法可以高效去掉字符串的最后一个字符
290 0
|
1月前
|
编译器 C#
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
116 65
|
9天前
|
JSON 程序员 C#
使用 C# 比较两个对象是否相等的7个方法总结
比较对象是编程中的一项基本技能,在实际业务中经常碰到,比如在ERP系统中,企业的信息非常重要,每一次更新,都需要比较记录更新前后企业的信息,直接比较通常只能告诉我们它们是否指向同一个内存地址,那我们应该怎么办呢?分享 7 个方法给你!
|
11天前
|
C# UED SEO
C# 异步方法async / await任务超时处理
通过使用 `Task.WhenAny`和 `Task.Delay`方法,您可以在C#中有效地实现异步任务的超时处理机制。这种方法允许您在指定时间内等待任务完成,并在任务超时时采取适当的措施,如抛出异常或执行备用操作。希望本文提供的详细解释和代码示例能帮助您在实际项目中更好地处理异步任务超时问题,提升应用程序的可靠性和用户体验。
35 3
|
1月前
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
55 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
14天前
|
JavaScript 前端开发 开发者
|
1月前
|
存储 C#
【C#】大批量判断文件是否存在的两种方法效率对比
【C#】大批量判断文件是否存在的两种方法效率对比
40 1
|
1月前
|
存储 JavaScript 前端开发
JavaScript 字符串(String) 对象
JavaScript 字符串(String) 对象
43 3
|
2月前
|
JavaScript 前端开发 API
javaScript中常用的String方法以及注意点总结
本文总结了JavaScript中常用的String对象的方法及其注意事项,包括大小写转换、字符获取、子字符串截取、字符串拼接、去除空格、替换、分割以及查找字符串中字符的索引等操作。提供了每种方法的使用示例代码,帮助理解它们的具体用法和差异。
38 2
|
1月前
|
C#
C#的方法的参数传递
C#的方法的参数传递
16 0