您的位置:首页 > 编程语言 > Java开发

Java编程思想

2016-09-25 16:16 309 查看
 %[argument_index$][flags][width][.precision]conversion

        %:表示需要进行格式化

        [argument_index$]:

        [flag]:默认右对齐,“-”表示左对齐

        [width]:宽度

        [.precision]:如果是字符串,表示打印输出的最大位数;如果作用于浮点数,则表示打印输出的小数点后的位数

        conversion:s:字符串  d:数字  f:浮点数 (和c语言有些相似)

    最常见的应用是控制一个域的最小尺寸,这可以通过指定width来实现。Formatter对象通过在必要时添加空格,来确保一个域至少达到某个长度。在默认的情况下,数据是右对齐,不过可以使用“-”标志来改变其对齐方向。

    与width相对的是precision,它用来指明最大尺寸。width可以应用于各种类型的数据转换,并且其行为方式都一样。precision则不然,不是所有类型的数据都能使用precision,而且,应用于不同类型的数据转换时,precision的意义也不同。在将precision应用于String时,它表示打印String时输出字符的最大数量。而在将precision应用于浮点数时,它表示小数部分要显示出来的位数(默认是6位小数),如果小数位过多则舍入,太少则在尾部补零。由于整数没有小数部分,所以precision无法应用于整数,如果你对整数应用precision,则会触发异常。

    下面的程序应用格式修饰符来打印一个购物收据:

 

[java] view
plain copy

import java.util.Formatter;  

  

/** %[argument_index$][flags][width][.precision]conversion */  

public class StringFormatUtils {  

    private double total=0;  

      

    private Formatter f=new Formatter(System.out);  

      

    public void printTitle(){  

        f.format("%-15s %5s %10s\n", "Items","Qty","Price");  

        f.format("%-15s %5s %10s\n", "-----","---","-----");  

    }  

      

    public void print(String name,int qty,double price){  

        f.format("%-15.15s %5d %10.2f\n", name,qty,price);  

        total+=price;  

    }  

      

    public void printTotal(){  

        f.format("%-15s %5s %10.2f\n", "Tax","",total*0.06);  

        f.format("%-15s %5s %10s\n", "","","-----");  

        f.format("%-15s %5s %10.2f\n", "Total","",total*1.06);  

    }  

      

    public static void main(String[] args){  

          

        StringFormatUtils stringFormatUtils=new StringFormatUtils();  

        stringFormatUtils.printTitle();  

        stringFormatUtils.print("Jack Maic Beans", 4, 4.25);  

        stringFormatUtils.print("Princess Peas", 3, 5.1);  

        stringFormatUtils.print("Three Bears Porridge", 1,14.29);  

        stringFormatUtils.printTotal();  

    }  

      

      

}  

[java] view
plain copy

  

[java] view
plain copy

输出结果:  

[java] view
plain copy

  

Items             Qty      Price

-----             ---      -----

Jack Maic Beans     4       4.25

Princess Peas       3       5.10

Three Bears Por     1      14.29

Tax                         1.42

                           -----

Total                      25.06

格式化字符串,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: