Java格式化输出
程序员文章站
2022-07-14 23:41:31
...
Java SE5推出了C语言printf()风格的格式化输出功能。
1 System.out.printf()
public static void main(String[] args) {
int x = 1;
float y=1.5f;
//%d表示x是一个整数,%f表示y是一个浮点数
System.out.printf("整数 x:%d %n浮点数 y:%f ",x,y);
}
结果:
整数 x:1
浮点数 y:1.500000
2 System.out.format()
Java SE5引入的format()方法模仿C的printf()方法,可用于PrintStream或者PrintWriter对象,包括System.out对象(System.out本质就是一个PrintStream对象)。
public static void main(String[] args) {
int x = 1;
float y=1.5f;
//%d表示x是一个整数,%f表示y是一个浮点数
System.out.format("整数 x:%d %n浮点数 y:%f ",x,y);
}
结果:
整数 x:1
浮点数 y:1.500000
可以看到format()和printf()是等价的,都只是简单的需要一个格式化字符串和一串参数即可,每个参数对应一个格式修饰符。
3 Formatter类
Java中所有的格式化功能都由java.util.Formatter类处理。可以将Formatter类看做一个翻译器,它将你的格式化字符串与数据翻译成需要的结果。当你创建一个Formatter对象的时候 ,需要向其构造器传递一些信息,告诉它最终的结果将向哪里输出。
public static void main(String[] args) {
String name = "Jack";
int age = 18;
Formatter f = new Formatter(System.out);
f.format("My name is %s and I am %d years old .", name, age);
}
结果:
My name is Jack and I am 18 years old .
4 Formatter转换
下面的表格包含了最常用的类型转换:
类型 | 说明 |
---|---|
d | 整数型(10进制 ) |
c | Unicode字符 |
b | Boolean值 |
s | String |
f | 浮点数(10进制) |
e | 浮点数(科学计数) |
x | 整数(16进制) |
h | 散列码(16进制) |
5 String.format()
String.format()是一个静态方法,接受Formatter.format()方法一样的参数,它会想创建一个Formatter对象,然后将传入的参数给该Formatter对象,处理后返回一个String对象。
public static void main(String[] args) {
System.out.println(String.format("My NO is %d",3536));
}
结果:
My NO is 3536
上一篇: utils封装 —— 时间格式化
下一篇: SQL格式化工具