平时.NET做多了,再做Java时,总会进行一些比较,比如说Java中有没有类似C#的String.format方法来进行字符串的格式化,免去拼接字符串的麻烦呢,CodeReview的时候总是被别人提出,开始以为Java中使用的是哪些%d、%s一类的感觉很是麻烦就没去注意了,正好朋友找到了类似的方法,在这里贴出来长长脑。
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 本身不实现特定于语言环境的行为。特定于语言环境的行为是由所提供的模式和用于已插入参数的子格式来定义的。
不管那么多,先试试再说吧。
Demo01
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" />
Demo02:
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
总结:
找找总会有方法的!