Java 中整数的格式说明符
本教程讨论 Java 中整数的格式说明符。我们将看到格式说明符并将它们用于整数以在屏幕上显示输出。
什么是 Java 中的格式说明符
格式说明符告诉屏幕上将打印哪种类型的数据,也用于从用户那里获取输入。这些格式说明符以百分比符号 (%) 开头,后跟表示数据类型的类型字符,例如 int、string、float 等。
Java 中整数的格式说明符
我们可以格式化 short、Short、byte、Byte、BigInteger、long 和 Long 的值。我们可以使用整数的格式说明符来格式化整数;我们还有各种可以与它们一起使用的 flags。
d- 用于将参数格式化为十进制整数;我们不能对此使用#标志。o- 用于将参数格式化为 base-8 整数,我们不能使用'(', '+', ' ', ','标志。输出将从零开始 (0) 如果我们使用#标志。x或X- 用于将参数格式化为 base-16 整数。如果我们使用带有#标志的x,则输出以0x开头。
通过使用带有 # 标志的 X,输出将是 0X。如果参数的数据类型是 int/Integer, long/Long, short/Short, 我们不能使用 ’(’, ‘+’, ’ ‘, ‘,’ 标志,或 byte/Byte。
如果参数的数据类型是 BigInteger,我们不能使用 , 标志。
请记住,precision 不适用于整数的格式说明符。
Java 中%d 的使用
示例代码:
System.out.printf("'%d' %n", 5678);
输出:
'5678'
在这里,printf() 语句打印数字并根据指定的格式说明符对其进行格式化。 %d 表示一个整数,%n 用于打印新行。
示例代码:
System.out.printf("'%6d' %n", 5678);
System.out.printf("'%6d' %n", 25695678);
输出:
' 5678'
'25695678'
%6d 表示需要在屏幕上打印的最少字符数。如果数字小于 6 位,则会用空格填充。
请参阅上面的输出以获取数字为 ' 5678',因为它不是 6 位数字并且用空格填充。如果输出甚至大于 6 位,则不会截断输出(请参见上面代码中的第二个 printf() 语句及其各自的输出)。
示例代码:
System.out.printf("'%-6d' %n", 5678);
System.out.printf("'%-6d' %n", 25695678);
输出:
'5678 '
'25695678'
%-6d 与我们在前面的示例中为 %6d 学习的概念相同,但该数字将在右侧用空格填充(如果它小于 6 位)。如果是较大的数字,结果将不会在此处被截断。
你是否正在寻找添加零而不是空格的解决方案?请参阅以下示例。
示例代码:
System.out.printf("'%06d' %n", 5678);
输出:
'005678'
结果使用%06d 填充零而不是空格。请记住,我们只能使用 0 标志在左侧添加零。
示例代码:
System.out.printf("'%(d' %n", 5678);
System.out.printf("'%(d' %n", -5678);
输出:
'5678'
'(5678)'
在这里,我们使用带有%d 的 ( 标志作为%(d,如果是负数则将 () 内的数字括起来,否则不影响结果。见上我们使用带有正数和负数的 ( 标志的代码示例。
示例代码:
System.out.printf("'% d' %n", 5678);
System.out.printf("'% d' %n", -5678);
输出:
' 5678'
'-5678'
使用 % d 将在结果中添加前导空格,但仅适用于正数。请参阅上面给出的输出。
你是否正在寻找一种解决方案来打印带有+ 的正数和带有 - 符号的负数?请参阅以下代码。
示例代码:
System.out.printf("'%+d' %n", 5678);
System.out.printf("'%+d' %n", -5678);
输出:
'+5678'
'-5678'
在这里,%+d 帮助我们在数字为正数时添加+ 符号,如果数字为负数则添加 -。
Java 中%o 和%x 的使用
如果我们将 x 和 o 与数据类型为 int/Integer、short/Short 或 Long/long 的负数一起使用,则值(参数值)将首先通过向其添加数字 2N 来转换为无符号数字(N 显示位的数字)。
请记住,BigInteger 参数不受这些转换的影响。请参见下面给出的实例。
示例代码:
byte b1 = 1;
byte b2 = -3;
System.out.printf("%o\n", b1);
System.out.printf("%o", b2);
输出:
1
375
看看下面给出的另一个示例代码。
System.out.printf("%#o %n", 5789);
System.out.printf("%#x %n", 5789);
System.out.printf("%#X %n", 5789);
输出:
013235
0x169d
0X169D
不要担心这个输出;让我们按顺序学习所有 printf() 语句。这里,%o 用于 base-8 整数(也称为八进制值),%x 或 %X 用于 base-16 整数(十六进制值)。
如果 # 标志分别与%o、%x 和%X 一起使用,则输出以 0、0x 和 0X 开始。检查以下截图,说明如何转换输出。

