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
格式化字符串,
%:表示需要进行格式化
[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
格式化字符串,
相关文章推荐
- java生成具有一定规则的唯一字符串
- Java 静态内部类 与 非静态内部类的区别?什么时候用静态内部类,又是什么时候用非静态内部类?
- 新手使用Maven的那些坑
- struts2案例
- [原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等
- Spring + SpringMVC + MyBatis
- JAVA中的集合(一)
- java标识符
- Java集合——HashMap、HashTable以及ConCurrentHashMap异同比较
- Java中的常用的代码调试的方法(错误代码定位的方法)
- Java集合——HashMap、HashTable以及ConCurrentHashMap异同比较
- 在eclipse中新建Android项目去除错误
- 叒初识Java(误
- Spring Data Jpa开发学习笔记(四)
- 清除Eclipse中的多余workspace项
- java观察者模式的简单案例
- 深入理解Java闭包概念
- java三大特性之封装
- spring MVC 总结
- java程序员面试必备之spring中bean的自动装配