什么是Java printf ?
Java printf函数有助于简化将格式输出打印到控制台,终端窗口或日志文件的任务。
Java printf函数使创建无需使用字符串串联的文本字符串或依靠可能触发输出错误的非标准字符变得更加容易。
在Java中,建议将printf作为替换print或println方法的呼叫。
如何使用Java PrintF格式化输出?
要使用Java printf方法格式化基于文本的输出,请按照以下步骤:
创建一个文字字符串字面,其中包含可变替代点
使用适当的转换说明符在发生可变替代的情况下
将其他标志添加到转换说明符中以进行宽度,填充和注释的格式
将字符串传递到Java
printf方法,并为每个转换说明符提供相应的参数
您如何使用Java PrintF格式化字符串?
了解Java printf方法的最简单方法是检查示例代码段。
以下Java printf示例格式化了文本字符串,并将两个变量替换到文本中,其中%s和%s转换说明符出现:
public class formatoutputjavaprintf { /*简单的java printf字符串示例。 */ public static void main(string [] args){string name =“ cameron”;字符串站点=“ TechTarget”; system.out.printf( “我喜欢suppit%s在%s。%n”,name,site ); /* printf输出:我喜欢Cameron在TechTarget上写的内容。 */}}
此Java printf字符串示例生成以下格式的输出:
我喜欢Cameron在TechTarget上写的文章。
这个简单的Java printf示例提供了三个重要的收获:
%sprintf规格不更改字母外壳。%Sprintf规范符将字母套管更改为大写。这些变量必须按照
printf字符串中引用的顺序列出。
| 图案 | 数据 | printf输出 |
'%s' |
爪哇 |
'java' |
“%15s” |
爪哇 |
'java' |
'%-15S' |
爪哇 |
'java' |
'%-15S' |
爪哇 |
'java' |
Java printf中的%n是什么意思?
使用Java printf格式化字符串时,可以使用%n代替n来指定线路断路。
什么是标准Java printf语法?
Java printf转换指定符的格式始终遵循相同的模式:
%[flags] [width] [.precision]指示符
标志,宽度和精度设置都是可选的。但是,字符规范必须匹配相应参数的数据类型,否则将发生格式错误。
| Java中的用户输入变得容易 |
|---|
|
了解从Java用户处理输入的最佳方法,以及如何使用PrintF格式化任何控制台输出。
|
凭借纯文本字符串,唯一有意义的标志是减号( - )。如果字符的数量超过宽度设置,则该格式在左侧的文本。
大多数Java printf标志旨在与整数和浮点号一起使用。
| printf标志 | 目的 |
| - | 对齐左侧的格式化printf输出 |
| + | 输出包括负或正符号 |
| (( | 将负数放在括号中 |
| 0 | 格式化的printf输出为零 |
| ,,,, | 格式化的输出包括分组分隔器 |
| <太空> | 空白空间为负数增加了一个负号,当正时添加了一个领先空间 |
如何使用Java中的printf格式化整数?
使用Java printf格式化数字或整数:
使用
%d作为基本10号的转换说明符。在字母
d上带有逗号的字母,数千人与小组编号。添加一个可选的
+标志以引起正数以显示正符号。使用
0标志将数字零填充,以填充按宽度指定的空间。
包com.mcnz.printf.example; public类JavaPrintFinteger { / *带有Java printf * / public static void main(string [] args){int上= -98765;长以下= 54321L; system.out.printf(“%,d ::%d”,上方,下方); / *示例打印: -00098,765 :: +54,321 */}}
| 图案 | 数据 | printf输出 |
| '%d' | 123,457,890 | '123457890' |
| '%,15d' | 123,457,890 | '123,457,890' |
| '%+,15d' | 123457890 | '+123,457,890' |
| '% - +,15d' | 123457890 | '+123,457,890' |
| '%0,15D' | 123457890 | '0000123,457,890' |
| '%15o' | 123457890 | '726750542' |
| “%15倍” | 123457890 | '75BD162' |
下图显示了如何执行高级Java printf整数格式:

Java double和Float值可以轻松格式化并使用Java Printf输出。
如何使用printf格式化Java double?
要格式化Java Float或用printf进行双重,请按照相同的步骤格式化一个用以下两个附录的整数:
浮点数的转换说明符为
%f,而不是%d。使用精确参数截断小数。
这是一个简单的示例,说明如何使用Java printf格式化浮点并双输出:
软件包com.mcnz.printf.example; public Class floatingPointPrintFexample { /*格式float and double Eutputs in Printf。 */ public static void main(string [] args){double top = 1234.12345; float底部= 1234.12345f; system.out.printf(“%+,3f ::%,.5f”,top,底部); / *示例打印: + 1,234.123 :: 1234.12345 */}}
%+,.3f设置如下分解:
加号
+指示Javaprintf如果双重为正,则包括一个加号。逗号指示Java
printf添加千分之一组的分隔符。.3指示Javaprintf将输出限制为三个小数点位置。%f是用于与printf格式化和浮子的指定符。
| printf指定符 | 数据类型 |
| %s | 文本字符串 |
| %f | 浮点值(浮动或双重) |
| %e | 浮子或双倍的指数,科学符号 |
| %b | 布尔值为或错误的价值 |
| %c | 单个角色char |
| %d | 底座10整数,例如java int,长,短或字节 |
| %o | 八达数字 |
| %x | 十六进制的数字 |
| %% | 百分比标志 |
| %n | 新线,又名马车回收 |
| %ty | 年至四位数 |
| %tt | HH:MM:SS的时间(即21:46:30) |
java的科学符号与printf
要使用科学符号输出浮点数,只需使用%e而不是%f来指定变量即可。
软件包com.mcnz.scientific.notation; public Class printfScientificNotatifationExample { /*格式float and double uptuff in printf。 */ public static void main(string [] args){double top = 1234.12345; float底部= 1234.12345f; system.out.printf(“%+,3e ::%,.5e”,top,底部); / *示例打印:+1.234e+03 :: 1.23412e+03 */}}
请注意,该示例如何打印出+1.234e +03 :: 1.23412e +03而不是+1,234.123 :: 1234.12345 ,这是前面示例生成的。
formatflagsconversionMismatchException
确保删除说明符中的任何逗号,因为尝试添加千分之一分组以进行科学符号将导致formatflagsconversionmismatchexception 。
使用Java的printf进行高级双重格式
以下图像演示了使用各种标志,精度设置和宽度指示符创建一个包含使用printf的提前格式格式的表。

这是Java双Printf示例表的代码和输出。
您如何与printf格式化Java Char或布尔值?
在Java中,Char使用%c规范符。布尔值使用%b 。
如果使用%C或%B用于用Java printf格式化布尔或炭,则在大写中打印值。
软件包com.mcnz.scientific.notation;公共类PrintfCharBooleAnexample { /*布尔char java printf示例。 */ public static void main(string [] args){boolean flag = false;炭煤= 1234.12345f; system.out.printf(“%b ::%c ::%c”,flag,coal,' u0077'); / *示例打印:false :: a :: w */}}
如您在此示例中所见, printf语句不仅格式化char变量,而且还可以正确地转换并正确打印Unicode字符号。
如何使用printf格式化Java的日期?
Java中输出日期和时间值的最佳方法是使用DateTimeFormatter类。但是, printf方法通过使用%t转换说明符以及附加的日期详细信息参数来支持简单的日期格式。
使用java.util.Date对象,我们可以使用以下选项:
%tH显示小时%tM显示会议分钟%tS显示秒%tp打印AM或PM时区偏移的
%tx
Java printf日期示例
以下示例格式化了printf的时间:
日期d = new Date(); System.out.printf(“%th%TM%TS%TZ”,D,D,D,D,D);/ *输出:22 26 49 -0400 */
您如何使用printf格式化Java的本地时间?
现代程序更喜欢在java.util.Date上使用LocalDateTime对象。
以下参数通常用于使用Java printf格式化DateTime输出:
%tAtoprintf在一周中的一天%tatoprintf缩写一周的缩写%tBtoprintf本月的全名%tbprintf缩写的月份名称%tdtoprintf当天%tY输出一年的全部四位数%tYtoprintf年度的最后两位数%tp显示AM或PM%tL显示毫秒偏移%tz显示时区偏移
Java printf时间示例
以下Java printf时间示例演示了如何在LocalDateTime对象中定义的格式值:
LocalDateTime DT = LocalDateTime.Now(); System.out.printf(“%TA,%TE,%Ty%TT%TT%TP”,DT,DT,DT,DT,DT,DT,DT,DT);/ *格式localDateTime输出AS:SAT 6,2022 21:19:19:56 PM */
此Java Time printf示例打印出来:
Sat 6, 2022 21:19:56 pm
您如何使用printf格式化表?
有时,开发人员希望在将其打印到控制台或日志文件之前整洁地格式化复杂的文本数据。
Java printf命令不提供任何有助于构建输出的内置功能。但是,Java printf方法的创造性使用可以生成数据表。
例如,以下代码生成一个表,该表记录了Java原始类型的属性:
System.out.printf("--------------------------------%n");System.out.printf(" Java's Primitive Types %n");System.out.printf(" (printf table example) %n");System.out.printf("--------------------------------%n");System.out.printf("| %-10s | %-8s | %4s |%n", "CATEGORY", "NAME", "BITS");System.out.printf("--------------------------------%n");System.out.printf("| %-10s | %-8s | %04d |%n", "Floating", "double", 64);System.out.printf("| %-10s | %-8s | %04d |%n", "Floating", “ float”,32); system.out.printf(“ |%-10S |%-8S |%04D |%n”,“积分”,“ long”,64); system.out.out.printf(“ |%-10S |%-8S |%-8S |%-8S |%04D |%n”,“ |%n“,“积分”,“ char”,16); system.out.printf(“ |%-10S |%-8S |%04D |%n”,“积分”,“ short”,16); system.out.printf(“ |%-10S |%-8S |%-8S |%-8S |%-8S |%04d |%n”,“ n”,“ by System”,“ systems”,8),“ 8)”,“ 8)”,“ 8)”,“ 8)”,“ 8)”,“ 8)”。 %-8S |。%04D |%n“,“ boolean”,“ boolean”,1); system.out.printf(“ --------------------------------------------%n”);
当代码运行时,会创建一个表格输出。

通过创造宽度,精度和printf格式标志创建Java printf表。
Java printf示例
Java printf语句大大简化了在Java程序中生成的格式输出的任务。
了解Java printf语句的基本原理,在生成控制台,日志和其他基于文本的输出流的输出时,您将节省大量时间。
| 图案 | 数据 | printf输出 |
| '%s' | 爪哇 | 'java' |
| “%15s” | 爪哇 | 'java' |
| '%-15S' | 爪哇 | 'java' |
| '%d' | 123,457,890 | '123457890' |
| '%,15d' | 123,457,890 | '123,457,890' |
| '%+,15d' | 123457890 | '+123,457,890' |
| '% - +,15d' | 123457890 | '+123,457,890' |
| '%0,15D' | 123457890 | '0000123,457,890' |
| '%15o' | 123457890 | '726750542' |
| “%15倍” | 123457890 | '75BD162' |
| '%15F' | 12345.123450 | '12345.123450' |
| '%-15.3F' | 12345.123450 | '12345.123' |
| '%015.3F' | 12345.123450 | '00000012345.123' |
| '%e' | 12345.123450 | '1.234579E+08' |
| '%.2e' | 12345.123450 | '1.23e+08' |
| '%7th%<-7tm' | new Date() |
'22 35' |
| '%15TT' | localdateTime.now() |
'22:35:53' |