看API可以看出
String和PrintStrean的printf可以格式化字符串以及下面可能看到的System.err
public PrintStream format(String format,Object... args)
public PrintStream printf(Locale l,
String format,
Object... args)
public PrintStream printf(String format,Object... args)
public PrintStream format(Locale l,
String format,
Object... args)
这两种方法等价!!
String的
这种格式化输出 来源于Formatter来!在包java。util中!
但经常被其他类当作静态方法调用
例如
// Writes a formatted string to System.out.
System.out.format("Local time: %tT", Calendar.getInstance());
// -> "Local time: 13:34:18"
// Writes formatted output to System.err.
System.err.printf("Unable to open file '%1$s': %2$s",
fileName, exception.getMessage());
// -> "Unable to open file 'food': No such file or
directory"
StringBuilder sb = new StringBuilder();
// Send all output to the Appendable object sb
Formatter formatter = new Formatter(sb, Locale.US);
// Explicit argument indices may be used to re-order output.
formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d")
首先说下 格式化的格式
引用
常规类型、字符类型和数值类型的格式说明符的语法如下:
%[argument_index$][flags][width][.precision]conversion
1、 可选的 argument_index 是一个十进制整数,用于表明参数在参数列表中的位置。
第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。
讲解下
例如 上面的例子
formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d");
4$是对 d进行格式化!当然输出顺序是按照 4-3-2-1的顺序!!
如果这样呢?
System.out.printf("%3$2s %2$2s %1$2s", "a", "b", "c", "d");
只输出3-2-1
2、可选 flags 是修改输出格式的字符集。有效标志集取决于转换类型。
是把index的数按照flag输出 并且输出 后面的字符串
System.out.printf("%2$s" , "a2345", 1.0);
输出 1.0
3、可选 width 是一个非负十进制整数,表明要向输出中写入的最少字符数。
引用
对于常规参数类型,精度是将向输出中写入的最多字符数。
对于浮点转换 'e'、'E' 和 'f',精度是小数点分隔符后的位数。
如果转换是 'g' 或 'G',那么精度是舍入计算后所得数值的所有位数。
如果转换是 'a' 或 'A',则不必指定精度。
对于字符、整数和日期/时间参数类型转换,以及百分比和行分隔符转换,
精度是不适用的;如果提供精度,则会抛出异常。
4、可选 precision 是一个非负十进制整数,通常用来限制字符数。特定行为取决于转换类型。
5、所需 conversion 是一个表明应该如何格式化参数的字符。给定参数的有效转换集取决于参数的数
例如时间中 要格式化时间!日期 等等!
格式化常规响
第一项是为arg(参数)null是的输出值
常见的有
b(false,boolean),
h(null,Integer.toHexString(arg.hashcode()))
s(null,String),c(unicode字符),
d(十进制整数),o(八进制),x(十六进制),
e(用计算机科学记数法表示的十进制数 )
t(时间)
%(b百分百)
n(平台的换行符)
更多的请到api文档上找相应的!!
时间格式!!
格式时间 有特定的表示方法!!
%[argument_index$][flags][width]conversion
conversion是必须的!!
所需的 conversion 是一个由两字符组成的序列。第一个字符是 't' 或 'T'。第二个 字符表明所使用的格式。这些字符类似于但不完全等同于那些由 GNU date 和 POSIX strftime(3c) 定义的字符。
在不产生歧义的条件下 index$可以省略!!例如下面的情况!!
例如
Calendar c = ...;
String s1 = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);
String s2 = String.format("Duke's Birthday: %1$tm %<te,%<tY", c);
'm' 月份,被格式化为必要时带前导零的两位数,即 01 - 13。
'd' 一个月中的天数,被格式化为必要时带前导零两位数,即 01 - 31
'e' 一个月中的天数,被格式化为两位数,即 1 - 31。
更多去找api包!!
看这个例子
System.out.printf("Your weight on %s is %f%n",p, p.surfaceWeight(mass));
这里的%n指的是 换行符!
分享到:
相关推荐
Java格式化输出.txt
在实际工作中,常常需要设定数字的输出格式,如以百分比的形式输出,或者设定小数位数等,现稍微总结如下
char n='150cm'; System.out.format("身高:%s", n); 举个例子 只要在双引号填加自己想说的话就好了 逗号后用来输出变量 占位符 说明 %d 格式化输出整数 %f 格式化输出浮点数 ...%s 格式化输出字符串
使用java.io.PrintStream的printf方法实现C风格的输出
java组件开发(14) 格式化输出
java常规类型的格式化.doc ) 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
将浮点型数用美元符号和货币符号输出,用格式化的方式。还包括浮点型数据相除时,格式化输出结果。
从Hibernate中提取的SQL格式化功能,去除了没用的功能,没有第三方jar包
当前的系统时间的格式化输出,包括中国时间和美国时间,并且是按照不同的两种方式输出的.
Java字符串 日期 数字格式化输出.docJava字符串 日期 数字格式化输出.docJava字符串 日期 数字格式化输出.docJava字符串 日期 数字格式化输出.docJava字符串 日期 数字格式化输出.docJava字符串 日期 数字格式化输出...
格式化人民币,能将您输入的数字格式化成人民币类型,欢迎下载。
/* * %6.3f: 6:总长度,3表示小数位,f:单精度 总长度=小数点+小数位+整数位 * %m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。 */
java
格式化程序可以作用于整个文件、有限行 ( --lines)、特定偏移量 ( --offset)、传递到标准输出(默认)或就地更改 ( --replace)。 要重新格式化特定补丁中更改的行,请使用 google-java-format-diff.py. 注意: ...
一个demo类 适用于不了解或者想要了解格式化输出的小伙伴 学会了这些,会省去好多算法代码
在项目开发的过程中难免需要打印一下自己拼写的SQL语句,尤其是很长的SQL语句,看起来很不舒服,使用该jar包,打印出来的SQL语句已经被格式化,结构很清晰、简洁,更方便我们调试及分析
主要介绍了Java中格式化输出,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
格式化程序可以作用于整个文件、有限的行、特定的偏移,传递到标准输出(默认)或就地更改。格式化程序的格式化算法没有可配置性。这是一个深思熟虑的设计决策,旨在将我们的代码格式统一为单一格式。格式化程序可...
Java中实现格式化输出的几种方式: 1、System.out.printf(); 类似于c语言的printf方法。如: int x = 55; System.out.format(“x = %5x”, x); 输出结果为:x = 37 2、System.out.format() int x = ...
java实现格式化Date类型,输入Date输出Date。遍历日期