Java的格式化输出

System.out的print和println方法,可以向控制台输出不同类型的数据,可以满足程序调试信息的输出要求。在实际应用中,输出数据时,要求数据必须按照一定的格式输出,如数据精度要求,小数点后保留2位有效数字、按照规定的格式输出日期、按照表格方式输出数据等要求。

System.out的printf方法可以对数据进行格式化输出,printf方法在Java API 文档中声明如下:

void printf(String format, Object... args)

A convenience method to write a formatted string to this output stream using the specified format string and arguments.

中文注解:一个便捷的方法,使用指定的格式字符串和传入的参数,将格式化的字符串输出到输出流(输出设备)

传入的参数

String format

字符串类型,符合格式字符串语法描述的字符串

Object... args

格式字符串中格式说明符引用的参数,参数的数量是可变的,可以为零,参数的最大数量受Java?虚拟机规范定义的Java数组的最大维数限制。

示例1:一个简单格式化输出的例子

在D盘Java目录下,新建“PrintfSample.java”文件。用记事本打开“PrintfSample.java”文件,输入以下代码:

代码结构分析

程序功能主要是演示println方法和printf的输出双精度浮点数的区别,println方法输出双精度浮点数时,不能对小数的有效位数控制输出,printf方法可以控制小数有效位数的输出。

程序增加了块注释语句,用于方法、语句以及变量的具体说明,提高程序代码的可读性和可维护性。块注释里的说明语句用“/*……*/”包括,每行说明语句用“*”开头。

printf的第一个参数“%s:%.2f”是格式字符串,其中“%s”表示输出字符串,字符串内容取自格式字符串后面的参数列表,“%.2f”表示输出浮点数时,限制2位有效小数,更改“%.”后面的数字,可以限制不同的小数位数输出,浮点数数值取自格式字符串后面的参数列表。参数列表顺序应与格式字符串的格式说明符的顺序与数据类型保持一致。

编译“PrintfSample.java”文件,在命令行窗口输入“javac PrintfSample.java”并执行命令,编译通过后,在命令行窗口输入“java PrintfSample”运行Java程序,命令行窗口显示如下信息:

 

图 5—8 简单格式化输出执行结果

从运行结果可以看出,printf方法可以控制浮点数小数位数的输出。

printf方法常用格式说明符列表

%c 单个字符

%d 十进制整数

%f 十进制浮点数

%o 八进制数

%s 字符串

%u 无符号十进制数

%x 十六进制数

%% 输出百分号%

printf的常用格式控制:

% 0m.n格式字符

下面对组成格式说明的各项加以说明:

① % 格式说明的起始符号,不可缺少。

② 0 有0表示指定空位填0,如省略表示指定空位不填。

③ m.n m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。

示例2:格式化输出的例子

在D盘Java目录下,新建“PrintfSample2.java”文件。用记事本打开“PrintfSample2.java”文件,输入以下代码:

代码结构分析

程序功能主要是演示printf的格式化输出,分别格式化输出字符串、浮点型和字符型数据。

程序的变量命名采用了匈牙利命名法,匈牙利命名法是一种编程时的命名规范,匈牙利命名法的基本原则是对每一变量的名称都要求有明确含义,变量的类型通过规定的前缀字母来识别。例如:ch表示字符型数据、sz表示字符串类型、d表示双精度浮点数等。

在“System.out.printf("**%s**\n",szTemp);”语句中,“”**%s**\n"”是格式字符串,%s表示输出字符串,字符串的内容来自szTemp,%s前面和后面的**是要输出的字符串内容,格式字符串里面可以添加任何想要输出的内容。\n是换行符,下次输出时将会另起一行。

在“System.out.printf("%s:%09.2f\n","输出浮点型变量",dTemp); ”语句中,第一个%s的内容来自于格式字符串后面的第一个字符串参数“输出浮点型变量”,%09.2f表示输出9位数浮点数,保留2位有效小数,位数不足的,前面用0填充,浮点数值内容来自于dTemp。

该语句也可以改写为下面的语句,效果是等同的:

System.out.printf("输出浮点型变量:%09.2f\n",dTemp);

在输出字符型变量语句中,分别应用%c、 %d和%x将字符型变量按照字符、十进制数值和十六进制数值输出,其中“(int)”是将字符类型强制转换为int类型操作符,其意义是将字符强制转换为数值输出。

编译“PrintfSample2.java”文件,在命令行窗口输入“javac PrintfSample2.java”并执行命令,编译通过后,在命令行窗口输入“java PrintfSample2”运行Java程序,命令行窗口显示如下信息:

图 5-9 示例2格式化输出执行结果

从上面输出的结果可以看出,格式化输出方法printf可以按照程序指定的格式输出数据。

 

printf方法的第一个参数格式字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以%开始, 后跟一个或几个规定字符,用来确定输出内容格式。printf方法的第二个参数是参量表,参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用“,”分开, 且顺序须一一对应, 否则将会出现意想不到的错误。

转自:https://baijiahao.baidu.com/s?id=1589387932240176464&wfr=spider&for=pc

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值