主要介绍了:

  • 消息格式化的基本使用;
  • 格式化:匹配数字;
  • 格式化:匹配日期;
  • 格式化:匹配时间;
  • 格式化:多次匹配;

MessageFormat用来格式化一个消息,通常是一个字符串。MessageFormat模式的主要部分:

下面是详细配置:


示例程序
  1. package com.sssppp.Format;
  2. import java.text.MessageFormat;
  3. import java.util.Arrays;
  4. import java.util.Date;
  5. import java.util.List;
  6. public class MessageFormatExample {
  7. public static void main(String[] args) {
  8. // 基本匹配
  9. String message = "基本匹配:{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}{16}";
  10. Object[] array = new Object[] { "A", "B", "C", "D", "E", "F", "G", "H",
  11. "I", "J", "K", "L", "M", "N", "O", "P", "Q" };
  12. String value = MessageFormat.format(message, array);
  13. System.out.println(value); // ABCDEFGHIJKLMNOPQ
  14. String message1 = "基本匹配:{0} is a person";
  15. Object[] array1 = new Object[] { "ZhangSan" };
  16. String value1 = MessageFormat.format(message1, array1);
  17. System.out.println(value1); // oh, ZhangSan is a person
  18. System.out.println();
  19. // 数字匹配
  20. System.out.println("数字匹配,匹配:3.1415");
  21. List<String> numList = Arrays.asList("integer", "currency", "percent",
  22. "#.##", "00.##");
  23. for (String string : numList) {
  24. String message2 = "{0,number," + string + "}";
  25. Object[] array2 = new Object[] { new Double(3.1415) };
  26. String value2 = MessageFormat.format(message2, array2);
  27. System.out.println(value2);
  28. }
  29. System.out.println();
  30. // 日期匹配
  31. System.out.println("日期匹配");
  32. List<String> dateList = Arrays.asList("yyyyMMdd-HH:mm:ss", "short",
  33. "medium", "long", "full");
  34. for (String string : dateList) {
  35. String message3 = "{0,date," + string + "}";
  36. String value3 = MessageFormat.format(message3, new Date());
  37. System.out.println(value3);
  38. }
  39. System.out.println();
  40. // 时间匹配
  41. System.out.println("时间匹配");
  42. List<String> timeList = Arrays.asList("yyyyMMdd-HH:mm:ss", "short",
  43. "medium", "long", "full");
  44. for (String string : timeList) {
  45. String message4 = "{0,time," + string + "}";
  46. String value4 = MessageFormat.format(message4, new Date());
  47. System.out.println(value4);
  48. }
  49. System.out.println();
  50. // 多次匹配
  51. String message8 = "多次匹配:{0} | {1} | {0} | {1}";
  52. Object[] array8 = new Object[] { "A", "B" };
  53. String value8 = MessageFormat.format(message8, array8);
  54. System.out.println(value8); // A | B | A | B
  55. }
  56. }

运行结果
  1. 基本匹配:ABCDEFGHIJKLMNOPQ
  2. 基本匹配:ZhangSan is a person
  3. 数字匹配,匹配:3.1415
  4. 3
  5. ¥3.14
  6. 314%
  7. 3.14
  8. 03.14
  9. 日期匹配
  10. 20161201-17:13:05
  11. 16-12-1
  12. 2016-12-1
  13. 2016年12月1日
  14. 2016年12月1日 星期四
  15. 时间匹配
  16. 20161201-17:13:05
  17. 下午5:13
  18. 17:13:05
  19. 下午05时13分05秒
  20. 下午05时13分05秒 CST
  21. 多次匹配:A | B | A | B


【java消息格式化】使用MessageFormat进行消息格式化的更多相关文章

  1. 格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出错: GetLzdtArticleResult。InnerException 消息是“反序列化对象 属于类型 lzdt.DTO.Dtolzdt[] 时出现错误。读取 XML 数据时,超出最大

    当遇到这个错误的时候郁闷了好长时间报错是字符串长度过大可是修改了MaxStringContentLength”属性的值却不起作用最后才发现还是因为配置文件配置的问题在服务端 格式化程序尝试对消息反序列 ...

  2. Java开发微信公众号模板消息【同步|异步】

    第一步:申请模板消息功能并添加模板 在微信公众平台找到你需要的模板,并添加上即可: 第二步:添加功能模块后开始开发 功能中使用的类及代码: 发送数据主实体类: Template.java packag ...

  3. 第四篇 :微信公众平台开发实战Java版之完成消息接受与相应以及消息的处理

    温馨提示: 这篇文章是依赖前几篇的文章的. 第一篇:微信公众平台开发实战之了解微信公众平台基础知识以及资料准备 第二篇 :微信公众平台开发实战之开启开发者模式,接入微信公众平台开发 第三篇 :微信公众 ...

  4. Java企业微信开发_05_消息推送之发送消息(主动)

    一.本节要点 1.发送消息与被动回复消息 (1)流程不同:发送消息是第三方服务器主动通知微信服务器向用户发消息.而被动回复消息是 用户发送消息之后,微信服务器将消息传递给 第三方服务器,第三方服务器接 ...

  5. java版Web Socket,实现消息推送

    # web socket是什么? WebSocket协议是基于TCP的一种新的网络协议. 它实现了浏览器与服务器全双工(full-duplex)通信,允许服务器主动发送信息给客户端. ## 用途 实时 ...

  6. java 操作 RabbitMQ 发送、接受消息

    例子1 Producer.java import java.io.IOException; import java.util.concurrent.TimeoutException; import c ...

  7. Java语言快速实现简单MQ消息队列服务

    目录 MQ基础回顾 主要角色 自定义协议 流程顺序 项目构建流程 具体使用流程 代码演示 消息处理中心 Broker 消息处理中心服务 BrokerServer 客户端 MqClient 测试MQ 小 ...

  8. java 之DelayQueue,TaskDelayed,handlerFactory,dataChange消息配置.收发等.java spring事务处理TransactionTemplate

    java 之DelayQueue,TaskDelayed,handlerFactory,dataChange消息配置.收发等.java spring事务处理TransactionTemplate等. ...

  9. Java企业微信开发_04_消息推送之发送消息(主动)

    源码请见: Java企业微信开发_00_源码及资源汇总贴 一.本节要点 1.发送消息与被动回复消息 (1)流程不同:发送消息是第三方服务器主动通知微信服务器向用户发消息.而被动回复消息是 用户发送消息 ...

随机推荐

  1. AWS EC2的VPN-PPTP搭建教程(on aws redhat6.5 X64 centOS 6.5)

    前些日子收到amazon的邮件通知,一年前申请的ec2到期了,一年免费的free tier没有了,放在上面的2个站已经欠费了十几美元了,不过我也不打算用了,准备重新注册账号(请不要鄙视我..) 1.注 ...

  2. Java环境环境配置

    1. 下载并安装JDK,假如安装在D盘 2. 右键计算机->属性->高级系统设置->环境变量 3. 点击新建系统变量:系统变量名:JAVA_HOME   系统变量值:D:\Progr ...

  3. (36)老版和新版API调用

    ---------更新时间18:06 2016-09-18 星期日------- *前言   我用的是odoo8,但里面有相当多的api是以前版本,这时若我们自己开发的   插件采用新版本api,里面 ...

  4. 查看Msi文件内容

    1通过msiexec命令解压msi包 msiexec.exe /a c:\msi\installer.msi /qb targetdir=d:\msi\installer 2 使用Orca查看. Or ...

  5. iOS开发UI篇—Quartz2D使用(信纸条纹)

    iOS开发UI篇—Quartz2D使用(信纸条纹) 一.前导程序 新建一个项目,在主控制器文件中实现以下几行代码,就能轻松的完成图片在视图中的平铺. #import "YYViewContr ...

  6. 【matlab】MATLAB程序调试方法和过程

    3.8  MATLAB程序的调试和优化 在MATLAB的程序调试过程中,不仅要求程序能够满足设计者的设计需求,而且还要求程序调试能够优化程序的性能,这样使得程序调试有时比程序设计更为复杂.MATLAB ...

  7. Python的平凡之路(10)

    异步IO 数据库 队列 缓存 1.Gevent协程 定义:用户态的轻量级线程.协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下 ...

  8. servlet jsp 客户端服务端跳转

    jsp 客户端:href jsp 服务端:forward servlet 客户端:response.sendredirect(); servlet 服务器:request.getRequestDisp ...

  9. React Native使用AsyncStorage本地持久化

    AsyncStorage AsyncStorage是一个简单的,未加密的,异步的,持久化,关键值存储系统,是全局的.类似于iOS中的NSUserDefault. 存值: import { AppReg ...

  10. window.location和window.open

    window.location和window.open的区别 window.location = "http://www.baidu.com" 跳转后有后退功能 window.lo ...