java formatter是什么,有什么作用,怎么用?

如题所述

java.util.Formatter 是JDK1.5新增的类库,功能很强大,主要用来格式化文本的。
格式化主要用在文本输出方面,比如,数字、日期、金额等,还有类似超市的购物单小票等等,都会用到格式化输出的工具。在此类没出现之前,只能通过空格缩进或这个制表符来对单据等格式做一些控制,现在只要掌握java.util.Formatter,就可以熟练应用了 。
举例如下:

import java.util.Calendar;
import java.util.Formatter;
import java.util.GregorianCalendar;

/**
* Formatter测试
*
* @author leizhimin 2009-7-16 16:31:02
*/
public class TestFormatter {

public static void main(String[] args) {
//%[argument_index$][flags][width][.precision]conversion
Formatter f1 = new Formatter(System.out);
//格式化输出字符串和数字
f1.format("格式化输出:%s %d", "a", 1235);
System.out.println("\n--------");
//日期的格式化
Calendar c = new GregorianCalendar();
f1.format("当前日期:%1$tY-%1$tm-%1$te", c);
System.out.println("\n--------");
//日期的格式化,并将格式化结果存储到一个字符串变量中
String s = String.format("当前日期:%1$tY-%1$tm-%1$te", c);
System.out.println(s);
//2$:取第二个参数
//-: 指定为左对齐,默认右对齐
//5:最大输出宽度为20,不够会补空格,实际若超过则全部输出
//.2:在此表示输出参数2的最大字符数量,如果是浮点数字,则表示小数部分显示的位数
//s :表示输入参数是字符串
f1.format("%2$-5.2s %1$2s", "123", "456");

//将格式化的结果存储到字符串
System.out.println("\n--------");
String fs = String.format("身高体重(%.2f , %d)", 173.2, 65);
System.out.println(fs);

//printf()本质上也是用System.out作为输出目标构造Formatter对象
//调用format方法,并将printf的参数传给format方法而得。
System.out.println("\n--------");
System.out.printf("身高体重(%.2f , %d)", 180.2, 65);

}
}
运行结果:
格式化输出:a 1235
--------
当前日期:2009-07-16
--------
当前日期:2009-07-16
45 123
--------
身高体重(173.20 , 65)
--------
身高体重(180.20 , 65)
Process finished with exit code 0
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-18
Formatter 是JAVA中用来格式化输出的类。
import java.io.*;
import java.util.*;

public class Turtle {
private String name;
private Formatter f;
public Turtle(String name, Formatter f){
this.name =name;
this.f=f;
}
public void move(int x, int y){
f.format("%s The Turtle is at (%d ,%d)\n", name, x, y);
}
public static void main(String[] args){
printStream outAlias = System.out;
Turtle tommy=new Turtle("Tommy",
new Formatter(System.out));
Turtle terry = new Turtle("Terry",
new Formatter(outAlias));
tommy.move(0,0);
terry.move(4,8);
tommy.move(3,4);
terry.move(2,5);
tommy.move(3,3);
terry.move(3,3);
}
}
看懂这段你就明白了。本回答被提问者采纳
第2个回答  2012-05-29
Formatter是格式化定义类,类似于C语言的printf语句。可灵活控制字符串等的输出样式。直接看api doc就明白了。http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html
例:
在数字前加入正负号,然后转成字符串
String b = String.format("%+f", -3);
System.out.println("[y=2*x" + b + "]");
相似回答