1. java输入输出的基础部分,请阅读以下文章
[1] ACM之Java输入输出
[2] java中printf中用法详解
[3] java的print,printf,println以及输入
2. 浮点数输出
示例代码:
float f = 10.0f;
double d = 345.678;
/*
'f' 浮点 结果被格式化为十进制数
'e', 'E' 浮点 结果被格式化为用计算机科学记数法表示的十进制数
'g', 'G' 浮点 根据精度和舍入运算后的值,使用计算机科学记数形式或十进制格式对结果进行格式化。
'a', 'A' 浮点 结果被格式化为带有效位数和指数的十六进制浮点数
*/
System.out.printf("%f %e %g %a \n", f, f, f, f);
System.out.printf("%9.2f \n", d);//"9.2"中的9表示输出的长度,2表示小数点后的位数。
System.out.printf("%+9.2f \n", d);//"+"表示输出的数带正负号。
System.out.printf("%-9.4f \n", d);//"-"表示输出的数左对齐(默认为右对齐)。
System.out.printf("%+-9.3f \n", d);//"+-"表示输出的数带正负号且左对齐。
//可以输出多个变量,注意顺序。
System.out.printf("字符串:%2$s,%1$d的十六进制数:%1$#x", 10, "你好");
对应输出:
10.000000 1.000000e+01 10.0000 0x1.4p3
345.68
+345.68
345.6780
+345.678
字符串:你好,10的十六进制数:0xa
3. 多进制输出(8、16进制)
示例代码:
int i = 10;
/*
'd' 整数 结果被格式化为十进制整数
'o' 整数 结果被格式化为八进制整数
'x', 'X' 整数 结果被格式化为十六进制整数
*/
//直接输出
System.out.printf("%d %o %x \n", i, i, i);
//带前缀输出
System.out.printf("%d %#o %#x \n", i, i, i);
//带前缀,控制宽度输出(宽度应该把前缀字符考虑在内,即:宽度=空格+前缀字符+数字)
System.out.printf("%d %#4o %#4x \n", i, i, i);
//带前缀,控制宽度,0补齐输出(宽度应该把前缀字符考虑在内,即:宽度=前缀字符+0补齐+数字)
System.out.printf("%d %#04o %#04x \n", i, i, i);
对应输出:
10 12 a
10 012 0xa
10 012 0xa
10 0012 0x0a