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

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

public class MessageFormat

extends Format

 

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

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

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

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

第一个例子:

int planet = 7;
String event = "a disturbance in the Force";

String result = MessageFormat.format(
     "At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
     planet, new Date(), event);
输出为:

 At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.
还不过瘾?我再来两个:
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自动将其封装称它对应的数据类型,
是不是很爽?

转载于:https://www.cnblogs.com/zhoufoxcn/archive/2006/10/15/2515882.html

好用的MessageFormat类相关推荐

  1. Java中MessageFormat的使用

    用于字符串替换,你还在用以下的这种方法吗? String.format(String format, Object... args) 这是String类型的静态方法,但是除此之外,JDK提供了更好用的 ...

  2. java设置类的字符格式_java类---与格式化相关的类

    程序运行结果: 显然月份字段在结果字符串中的位置是[5,7),注意是一个前闭后开区间. String string) 将指定的日期字符串解析成Date对象 String string, ParsePo ...

  3. 心得18--JavaWEB国际化类和jstl对应的标签案例分析

    1.locale类测试package com.hbsi.demo;import java.util.Locale;publicclass Demo1 {publicstaticvoid main(St ...

  4. MessageFormat用法

    转载于:http://zqc-0101.iteye.com/blog/1140140 MessageFormat用法 MessageFormatMessageFormat.format Message ...

  5. java格式化货币_使用Java MessageFormat格式化货币

    要使用Java中的货币填充符格式化消息,我们使用MessageFormat类.MessageFormat类为我们提供了一种生成不依赖于语言的级联消息的方法.MessageFormat类扩展了Seria ...

  6. i27岁转行java,JavaTM I/O 性能分析[转]

    JavaTM I/O 性能分析[转] 上一篇 / 下一篇  2008-07-30 13:04:44 / 个人分类:Zee的生活 这篇文章讨论和阐明了提供 JavaTM I/O 性能的多种设计问题,例如 ...

  7. javaweb学习总结(三十一)——国际化(i18n)

    一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...

  8. java是什么格式_是java格式

    错误:编码GBK的不可映射字符的解决办法 最近在重新补javaSE的基础,编辑器编写完代码以后,在控制台运行代码段的时候,出现了以下的错误提示:错误:编码GBK的不可映射字符 在通过查询谷哥和度娘以后 ...

  9. 在 Java CAPS 中使用 LDAP

    http://docs.oracle.com/cd/E19509-01/820-5624/ggfpv/index.html http://docs.oracle.com/cd/E19509-01/82 ...

最新文章

  1. “偷懒”上热搜!南京大三学生自制宿舍关灯神器火了,网友:希望量产
  2. java使用url和tns两种方式连接数据库执行存储过程
  3. 锐捷2126G部分基础配置(升级系统固件、telnet、vlan)
  4. 那个能力很强的程序员学历造假,被辞退了!
  5. mysql 高性能引擎_《高性能MySQL》笔记1-MySQL架构与引擎
  6. Androidstudio如何正确导入和移出jar包
  7. PHPCMS修改域名
  8. python时间格式_python 格式化日期
  9. SQL Server 2008 R2数据库镜像部署
  10. Picture Box(1) 修正版
  11. Maven项目的目录结构+maven的安装与配置
  12. 2022苹果CMS全新二开影视源码App源码完整版
  13. Android jetpack DataStore 1.0.0-rc02最新版从SharedPreferences迁移到Preferences DataStore
  14. 一键调整PCB丝印,超级好用
  15. Excel 2010同时打开2个或多个独立窗口
  16. HDU 1224(动态规划)
  17. 华为机试真题 Java实现【最短木板长度】【100%通过率】【2022.11 Q4 新题】
  18. 分享一些好玩有趣的软件给你
  19. 结构设计模式:复合模式
  20. 网页成品——手表商城网站模板源码(17页) web期末作业设计网页_手表商城网页设计作业成品

热门文章

  1. 使用jsoncpp解析生成json
  2. linux动态追踪神器——Strace实例介绍【转】
  3. 解决IIS数据库连接出错方法
  4. ZOJ 3635 Cinema in Akiba[ 大规模阵列 ]
  5. Android smartimageview网络图片查看器
  6. 另一个.NET上的文档数据库Raven[转载]
  7. 英语作业(general version an narrow version about sth)
  8. LeetCode数据库 177. 第N高的薪水
  9. 1094 谷歌的招聘 (20分)
  10. C语言程序项目计划书,(C语言程序设计课程设计计划书.doc