大可制作:QQ群:31564239(asp|jsp|php|mysql)

Java Gossip:  Console 输出格式控制  

标准输出通常是文字模式为主的主控台(终端机),这边介绍几个格式控制技巧,在主控台显示时可以协助输出的显示格式。

首先介绍格式字节控制,先表列一些常用的控制字节:

\\ 反斜线
\' 单引号 '
\" 双引号 "
\uxxxx 以16 进位数指定Unicode字节输出
\dxxx 以8进 位数指定Unicode字节输出
\b 倒退一 个字节
\f 换页
\n 换行
\r 游标移 至行首
\t 跳格 (一个Tab键)



下面这段程序告诉您如何指定字节编码来输出"Hello"这段文字:
System.out.println("\u0048\u0065\u006C\u006C\u006F");

在输出数值时,默认都会以十进位的方式来显示数值,下面这几段程序可以让您分别以不同进位制来显示数值:
int x = 19;
 // 转成二进位 10011
System.out.println(Integer.toBinaryString(x));
 // 转成十六进位 13
System.out.println(Integer.toHexString(x));
 // 转成八进位 23
System.out.println(Integer.toOctalString(x));

J2SE 5.0 中,您可以使用 System.out.printf() 作简单的输出格式设定,例如:
// 输出 19 的十进位表示
System.out.printf("%d%n", 19);
// 输出 19 的八进位表示
System.out.printf("%o%n", 19);
// 输出 19 的十六进位表示
System.out.printf("%x%n", 19);

'%d'表示将指定的数值以 十进位表示,'%o'是八进 位表示,而'%x'是十六进位表示,'%n'是 指输出平台特定的换行字节,如果是在Windows下实际上会置换为 '/r/n',如果是 Linux下则会置换为'/n'

下表简单列出了一些常用的转换符号:

%% 在字符串 中显示%
%d 以10 进位整数方式输出,提供的数必须是Byte、 Short、 Integer、Long、或BigInteger
%f 将浮点 数以10进位方式输出,提供的数必须是Float、 Double或 BigDecimal
%e, %E 将浮点 数以10进位方式输出,并使用科学记号,提供的数必须是 Float、 Double或BigDecimal
%a, %A 使用科 学记号输出浮点数,以16进位输出整数部份,以10进位 输出指数部份, 提供的数必须是Float、Double、BigDecimal
%o 以8进 位整数方式输出,提供的数必须是Byte、Short、 Integer、Long、或BigInteger
%x, %X 将整 数以16进位方式输出,提供的数必须是Byte、 Short、 Integer、Long、或BigInteger
%s, %S 将字符串 格式化输出
%c, %C 以字节 方式输出,提供的数必须是Byte、Short、 Character或 Integer
%b, %B 将"true" 或"false"输出(或"TRUE"、 "FALSE",使用 %B)。另外,非null值输出是"true",null值输出是"false"
%t, %T 输出日 期/时间的前置,详请看线上API文件















您可以在输出浮点数时指定精度,例如:
System.out.printf("example:%.2f%n", 19.234);

执行结果会输出:
example:19.23

您也可以指定输出时,至少要预留的字节宽度,例如:
System.out.printf("example:%6.2f%n", 19.234);

由于预留了6个字节宽度,不足的部份要由空白字节补上,所以执行结果会输出如下(19.23只占五个字节,所以补上一个空白在前端):
example: 19.23

以上只是简短的列出一些常用的输出转换符号,事实上,这些功能都是由 java.util.Formatter 所提供的,如果您需要更多关于输出格式的控制,您可以看看线上API文件以查询相关设定。