一 中英文对齐输出问题
问题,要求控制台输出如下:
abcefg def
森林 阿狗
其实就是要求对齐输出,各种查找java的格式化输出,然后发现只要一个简单的“/t”就可以实现。
代码如下:
System.out.printf("abcefg/t");System.out.printf("def/t");System.out.println();System.out.printf("森林之王/t");System.out.printf("阿狗/t");
二 几个关于java格式化输出的知识点汇总
2.1 类c的printf方法
Java的格式化输出等同于String.Format,与C有很大的相似,比如 System.out.printf("%8.2f", x);
在printf中,可以使用多个参数,例如:System.out.printf("Hello, %s. Next year,you'll be %d", name, age);
用于printf的转换符如下表:
转换符类型 举例
d十进制整数 159
x十六进制整数9f
o八进制整数237
f定点浮点数15.9
e指数浮点数1.59e+01
g通常浮点数
a十六进制浮点数0x1.fccdp3
s字符串Hello
c字符H
b布尔型TRue
h散列码42628b2
tx日期时间见时间介绍表
%百分号%
n分隔符
在printf函数中,可以使用多个标志,如: System.out.printf("%,.2f",10000.0 / 3.0);
用于printf的标志如下表
标志目的举例
+打印数字前的符号+3333.33
space在正数之前加空格| 3333.33|
0在数字前补0003333.33
-左对齐|3333.33 |
(负数括在括号内(3333.33)
,添加分组分隔符3,333.33
# (for f )包含小数点3,333.
# (for x or o)添加前缀 0x 或 00xcafe
^转化为大写0XCAFE
$指定格式化参数索引,如%1$d,%1$d表示以十进制
和十六进制打印第一个参数159 9F
< 格式化前面参数,如%d%
制打印同一个参数159 9F
时间日期的转换符如下:
转换符类型举例
C完整日期和时间Mon Feb 09 18:05:19 PST 2004
FISO 8601 日期2004-02-09
D美国时间格式 (mm/dd/year)02/09/2004
T24小时时间18:05:19
r12小时时间06:05:19 pm
R24小时无秒时间18:05
Y四位年2004
y年的后两位04
C年的前两位20
B月的完整拼写February
b or h月的缩写Feb
m两位月(前补0)02
d两位日(前补0)09
e日期(前不补0)9
A完整星期几Monday
a星期几的缩写Mon
j这一年的第多少天,三位补0069
H24小时制小时,两位补018
k24小时制小时,两位不补018
I12小时制小时,两位补006
l12小时制小时,两位不补06
M分钟,两位补005
S秒,两位补019
L毫秒,三位补0047
N毫微秒,九位补0047000000
P上下午大写PM
p上下午小写pm
zRFC 822 numeric offset from GMT-0800
Z时区PST
s1970-01-01 00:00:00起秒数1078884319
E1970-01-01 00:00:00起毫秒数1078884319047
2.2 String.format
public class StringFormat { /** * 格式化输出 字符串 * [*]左对齐,右补空格 * * @param str * @param min_length : 最小输出长度 * @return */ public static String formatLeftS(String str, int min_length) { String format = "%-" + (min_length < 1 ? 1 : min_length) + "s"; return String.format(format, str); } /** * 格式化输出 整数 * [*]右对齐,左补0 * * @param num * @param min_length : 最小输出长度 * @return */ public static String format0Right(long num, int min_length) { String format = "%0" + (min_length < 1 ? 1 : min_length) + "d"; return String.format(format, num); } /** * 格式化输出 浮点数 * [*]右对齐,左补0 * * @param d * @param min_length : 最小输出长度 * @param precision : 小数点后保留位数 * @return */ public static String format0Right(double d, int min_length, int precision) { String format = "%0" + (min_length < 1 ? 1 : min_length) + "." + (precision < 0 ? 0 : precision) + "f"; return String.format(format, d); }}
2.3 其它……
相关阅读: