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

字符串(三)--来自《Java编程思想第四版》第13章

2016-03-01 14:17 363 查看
format()和printf()是等价的。它们只需要一个简单的格式化字符串,加上一串参数即可,每个参数对应一个格式修饰符

int x = 5;
double y = 23.16;
System.out.format("Row 1:[%d %f]\n",x,y);
System.out.printf("Row 1:[%d %f]\n",x,y);


%d表示x是一个整数,%f表示y是一个浮点数(float或者double)

运行结果:
Row 1:[5 23.160000]
Row 1:[5 23.160000]


Formatter类

可以将Formatter看作一个翻译器,它将你的格式化字符串与数据翻译成需要的结果。当你创建一个Formatter对象的时候,需要向其构造器传递一些信息,告诉它最终的结果将向哪里输出。

private Formatter f;
f.format("%s I LOVE THE NUMBER %d,%d",name,x,y);//name,x,y都是变量


%s表示插入的参数是String类型的。

如果想要控制空格与对齐,则需要更精细复杂的格式修饰符

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

width:控制一个域的最小尺寸。默认情况下,数据是右对齐,不过可以使用“-”标志来改变对齐方向。

precision:指明最大尺寸。应用于String时,表示打印String时输出字符的最大数量。

应用于浮点数时,它表示小数部分要显示出来的位数。

如果你对整数应用precision,则会触发异常。

private Formatter f = new Formatter(System.out);
f.format("%-15s %5s %10s\n","Item","Qty","Price");


最常用的类型转换:

d:整数型(十进制)

c:Unicode字符

b:Boolean值

s:String

f:浮点数(十进制)

e:浮点数(科学计数)

x:整数(十六进制)

h:散列码(十六进制)

%:字符“%”

String.format()是一个static方法,它接受与Formatter.format()方法一样的参数,但返回一个String对象。当只需使用format()方法一次的时候,String.format()用起来很方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java