快速上手java.util.Formatter 类,(实例教程)
2012-11-13 17:39
357 查看
因为工作需要,前段时间有用到java.util.Formatter类, 因为关于此类的api文档 可能会有一些难度,所以在这里用自己的方式给大家讲解一番,希望大家能快速上手。
Q. 为什么要用到此类:
A:此类提供了对布局对齐和排列的支持,以及对数值、字符串和日期/时间数据的常规格式和特定于语言环境的输出的支持。
通俗一点说就是 控制 输出文本的 格式。
1、产生格式化输出的每个方法都需要“格式字符串” 和 “参数列表”
格式字符串是一个
“格式说明符。”
格式说明符的语法如下:
可选的 argument_index 是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。
可选的 flags 是修改输出格式的 字符集 。有效标志的集合取决于转换类型。
可选 width 是一个 非负十进制整数,表明要向输出中写入的最少字符数。
可选 precision 是一个非负十进制整数, 通常用来限制字符数。特定行为取决于转换类型。
所需的 conversion 是一个表明应该如何格式化参数的字符。给定参数的有效转换集合取决于参数的数据类型。
实例:
[java]
view plaincopy
package test;
import java.util.Calendar;
import java.util.Formatter;
import java.util.Locale;
public class JavaApiDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuilder sb = new StringBuilder();
// Send all output to the Appendable object sb(将所有的 输出 发送到附加对象 sb )
/** Formatter(Appendable a, Locale l)
构造一个带指定目标文件和语言环境的新 formatter。*/
Formatter formatter = new Formatter(sb, Locale.US);
// Explicit(详述的,明确的) argument indices(index的复数形式) may be used to re-order output.
/**
* 明确的 “参数索引”(eg. agurment_index$) 可以用来对 输出文本(参数列表) 进行排序
*/
formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d");
// -> " d c b a"
// Optional locale as the first argument can be used to get
// locale-specific formatting of numbers. The precision(精度) and width can be
// given to round and align the value.
/**
* 可选的local参数作为第一个参数 可以去 获取(或设定) 区域设置特定的数字格式
* 精度和宽度的设定 可以 全面对其所要输出的格式
*/
formatter.format(Locale.FRANCE, "e = %+10.4f", Math.E);
System.out.println(sb.toString());
// Writes a formatted string to System.out.
System.out.format("Local time: %tT", Calendar.getInstance());
// -> "Local time: 13:34:18"
}
}
解释:Formatter formatter = new Formatter(sb,Locale.US) //构造一个带指定目标文件和语言环境的新 formatter, 所有的输出 将 发送 到 sb 对象中,
formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d ") // "%4$2s %3$2s %2$2s %1$2s" 是 “格式字符串”,后面的 是参数列表,
含 a ,b , c ,d 四个参数 ,%4$2s 表示的意思是 4$:第四个参数, 2:最少输出两个字符,s:按照字符串的格式输出目标字符 。
语法对照:%[argument_index$][flags][width][.precision]conversion
像那个flags 参数 啊 ,是表示 控制 输出格式的 字符集,可以参照api文档的 《标志》 部分。
eg.
width 和 .precision 就不多说了,
conversion 控制输出的 格式 语法,可以参考api文档的 《转换》 部分。
eg
System.out.format("将参数列表当中的十进制整数转换成十六进制:29转换成十六进制之后的值:%1$x", 29);
控制台输出 将参数列表当中的十进制整数转换成十六进制:29转换成十六进制之后的值 1d
原文:http://blog.csdn.net/wangqiang_lenovo/article/details/6042952
Q. 为什么要用到此类:
A:此类提供了对布局对齐和排列的支持,以及对数值、字符串和日期/时间数据的常规格式和特定于语言环境的输出的支持。
通俗一点说就是 控制 输出文本的 格式。
1、产生格式化输出的每个方法都需要“格式字符串” 和 “参数列表”
格式字符串是一个
String,它可以包含固定文本以及一个或多个嵌入的
“格式说明符。”
格式说明符的语法如下:
%[argument_index$][flags][width][.precision]conversion
可选的 argument_index 是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。
可选的 flags 是修改输出格式的 字符集 。有效标志的集合取决于转换类型。
可选 width 是一个 非负十进制整数,表明要向输出中写入的最少字符数。
可选 precision 是一个非负十进制整数, 通常用来限制字符数。特定行为取决于转换类型。
所需的 conversion 是一个表明应该如何格式化参数的字符。给定参数的有效转换集合取决于参数的数据类型。
实例:
[java]
view plaincopy
package test;
import java.util.Calendar;
import java.util.Formatter;
import java.util.Locale;
public class JavaApiDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuilder sb = new StringBuilder();
// Send all output to the Appendable object sb(将所有的 输出 发送到附加对象 sb )
/** Formatter(Appendable a, Locale l)
构造一个带指定目标文件和语言环境的新 formatter。*/
Formatter formatter = new Formatter(sb, Locale.US);
// Explicit(详述的,明确的) argument indices(index的复数形式) may be used to re-order output.
/**
* 明确的 “参数索引”(eg. agurment_index$) 可以用来对 输出文本(参数列表) 进行排序
*/
formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d");
// -> " d c b a"
// Optional locale as the first argument can be used to get
// locale-specific formatting of numbers. The precision(精度) and width can be
// given to round and align the value.
/**
* 可选的local参数作为第一个参数 可以去 获取(或设定) 区域设置特定的数字格式
* 精度和宽度的设定 可以 全面对其所要输出的格式
*/
formatter.format(Locale.FRANCE, "e = %+10.4f", Math.E);
System.out.println(sb.toString());
// Writes a formatted string to System.out.
System.out.format("Local time: %tT", Calendar.getInstance());
// -> "Local time: 13:34:18"
}
}
解释:Formatter formatter = new Formatter(sb,Locale.US) //构造一个带指定目标文件和语言环境的新 formatter, 所有的输出 将 发送 到 sb 对象中,
formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d ") // "%4$2s %3$2s %2$2s %1$2s" 是 “格式字符串”,后面的 是参数列表,
含 a ,b , c ,d 四个参数 ,%4$2s 表示的意思是 4$:第四个参数, 2:最少输出两个字符,s:按照字符串的格式输出目标字符 。
语法对照:%[argument_index$][flags][width][.precision]conversion
像那个flags 参数 啊 ,是表示 控制 输出格式的 字符集,可以参照api文档的 《标志》 部分。
eg.
'-' | y | y | y | y | y | 结果将是左对齐的。 |
conversion 控制输出的 格式 语法,可以参考api文档的 《转换》 部分。
eg
'd' | 整数 | 结果被格式化为十进制整数 |
控制台输出 将参数列表当中的十进制整数转换成十六进制:29转换成十六进制之后的值 1d
原文:http://blog.csdn.net/wangqiang_lenovo/article/details/6042952
相关文章推荐
- 快速上手java.util.Formatter 类,(实例教程)
- Arquillian测试框架快速上手教程(三)- 使用 Arquillian 进行Java持久化测试
- [Java教程]快速上手RaphaelJS
- Eclipse快速上手Hibernate--1. 入门实例---选择自 javamxj 的Blog
- 实例教程:快速上手iOS iBeacon开发(Swift版)
- samrty学习快速上手 教程+实例
- samrty学习快速上手 教程+实例
- Eclipse快速上手Hibernate之入门实例
- java Vamei快速教程07 包
- Java实例教程(1)JDK的获取、安装与配置
- Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
- Android Java开发实例项目+游戏视频教程免费下载咯。。
- 【fastweixin框架教程1】一分钟快速搭建微信公众平台JAVA服务器
- Java.util.logging日志入门教程(二)properties配置(输出文件)
- java.util.concurrent.Semaphore 实例
- windows phone:Expression Blend实例中文教程(8) - 动画设计快速入门StoryBoard
- Java教程 实战学习Struts实例
- Java任务调度框架Quartz教程实例
- Eclipse快速上手Hibernate--4. 继承映射(2)(摘自javamxj的blog)
- Flink快速上手之Java API使用