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

本文深入探讨了Java中的格式化输出方法format()和printf()的使用,并介绍了Formatter类的作用及其实现方式。详细解释了如何通过格式化字符串与数据进行翻译,包括基本格式修饰符、控制空格与对齐的方法,以及常用类型转换。此外,文章还展示了如何通过Formatter类灵活地控制输出结果,包括设置宽度、精度和不同数据类型的输出样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值