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

来源:互联网 发布:mysql自增id 编辑:程序博客网 时间:2024/04/28 10:49

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()用起来很方便。

0 0
原创粉丝点击