Java格式化输出

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进制 )
cUnicode字符
bBoolean值
sString
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
只有把命运掌握在自己手中,从今天起开始努力,即使暂时看不到希望,也要相信自己。因为比你牛几倍的人,依然在努力。
原文地址:https://www.cnblogs.com/freesky168/p/14358214.html