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
开始。检查以下截图,说明如何转换输出。