欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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
相关标签: java 格式化