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月前
|
Java
Java String split()方法详细教程
Java String split()方法详细教程
27 0
|
2月前
|
Java 调度 C#
C#学习系列相关之多线程(一)----常用多线程方法总结
C#学习系列相关之多线程(一)----常用多线程方法总结
|
2月前
|
C#
C#学习相关系列之数组---常用方法使用(二)
C#学习相关系列之数组---常用方法使用(二)
|
2月前
|
C#
51.c#:string类的静态方法
51.c#:string类的静态方法
24 1
|
4天前
int 和 String 互相转换的多种方法
int 和 String 互相转换的多种方法
|
5天前
|
程序员 C#
C#抽象类和抽象方法详解
C#抽象类和抽象方法详解
8 0
|
5天前
|
存储 开发框架 .NET
C#中将DataTable转化成ListT的方法解析
C#中将DataTable转化成ListT的方法解析
6 0
|
6天前
|
数据采集 前端开发 数据挖掘
Fizzler库+C#:从微博抓取热点的最简单方法
本文介绍如何使用Fizzler库和C#构建微博热点信息爬虫。通过Fizzler的CSS选择器定位关键信息,提取热点标题和排名,实现微博内容的智能挖掘。示例代码展示单线程和多线程采集方法,并涉及代理IP使用。
Fizzler库+C#:从微博抓取热点的最简单方法
|
7天前
|
存储 数据采集 API
C# GetField 方法应用实例
C# GetField 方法应用实例
|
7天前
|
JSON 安全 API
C# GetMethod 方法应用实例
C# GetMethod 方法应用实例