Java格式化输出学习笔记

来源:互联网 发布:slam 单片机 编辑:程序博客网 时间:2024/05/19 03:16
------- android培训、java培训、期待与您交流! ----------
</pre><p></p><p style="text-align:left"><span style="font-family:SimHei; font-size:18px">通过对下面这个程序的编写,对自己以前学过的知识点又进行了一次系统复习。</span></p><p></p><pre name="code" class="java">/** * <p/> * Coder:LPF * <p/> * Date: 2015-01-05 15:48 */public class ForMater {    public static void main(String[] args) {        System.out.printf("%-8s%-8s%-8s\n", "a", "b", "pow(a, b)");        int a = 1;        int b = 2;        while (a < 6) {            int c = (int) Math.pow(a, b);            System.out.printf("%-8d%-8d%-8d\n", a, b, c);            a++;            b++;        }    }}运行结果:a       b       pow(a, b)1       2       12       3       83       4       814       5       10245       6       15625



图形输出最好用System.out.printf()方法格式化输出。调用这个方法的语法是:
  System.out.printf(format,item1,item2,.......,itemk),这里的format是指一个子串和格式标识符构成的字符串。
常用标识符       
       %5c    输出字符并在这个字符条目前面加4个空格。
       %6b    输出布尔值,在false前加一个空格,在true前加两个空格。
       %5d    输出十进制整数条目,宽度至少为5,如果数字位数小于5,则自动在前面添加空格,如果大于5,则自动增加宽度。
       %10.2f    输出的浮点数宽度至少为10,包括小数点和小数点后两位,即小数点前为7为,如果小于7,添加空格,如果大于7,则自动增加宽度。
       %12s    输出的字符宽度至少为12位,其余同上。
       %10.2e   输出标准科学计数法形式的数,宽度为10,包括小数点和小数点后两位和指数部分。
       “ —”代表表示该条目在特点宽度的输出是左对齐的。
       “\n”代表换行。输出双引号、单引号、反斜杠,前面都要加   \   
       \b  退格键, \t  Tab键, \f 进纸 ,\r 回车键。
       标识符的个数于后面跟的条目要一致,并且条目和标识符必须在类型上严格匹配。 
显式索引 是在格式说明符中包含参数索引时使用。参数索引是一个十进制整数,用于指示参数,在参数列表中的位置。第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。可以多次引用任何一个参数。 
       条目中间一定要注意有逗号隔开。如果用“+”的话,编译能够通过,运行时会报错下面是报错。

/** * <p/> * Coder:LPF * <p/> * Date: 2015-01-05 16:00 */public class PrintForMater {    public static void main(String[] args) {        System.out.printf("%s = %s\n", "Name", "LuPanFeng");        System.out.printf("%s = %S%n", "NAME", "lupanfeng");        System.out.printf("true = %b\n", true);        System.out.printf("%b\n", false);        System.out.printf("%8f\n", 8.8);        System.out.printf("%8.1f\n", 8.8);        System.out.printf("%8s%8d%8.1f\n","java", 1234, 8.8);        System.out.printf("%-8s%-8d%-8.1f\n","java", 1234, 8.8);        System.out.printf("%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s",                    "a", "b", "c", "d");    }}运行结果:Name = LuPanFengNAME = LUPANFENGtrue = truefalse8.800000     8.8    java    1234     8.8java    1234    8.8d c b a d c b a



不仅可以用System.out.printf()方法格式化输出,还可以用String.format()方法进行格式化输出,format()是一个static方法,通过传入格式字符串和参数返回一个格式化字符串。
如果只做一次输出时,String.format()方法用起来也是很方便的。

String str = String.format("%d %d", 1, 32);        System.out.println(str);运行结果:1 32   



在Java中所有新的格式化功能都由java.util.Formatter类处理。可将Formatter看做一个翻译器,将你的字符串翻译成需要的结果。运用Formatter类中的format()方法,进行格式化输出。

Formatter f = new Formatter(System.out);        f.format("%-5s %5s %5s\n", "Lu", "Pan", "feng");        f.format("%-5s %5s %5s\n", "---", "---", "---");运行结果:Lu      Pan  feng---     ---   ---





0 0
原创粉丝点击