Java 中整数的格式说明符

Mehvish Ashiq 2024年2月15日
  1. 什么是 Java 中的格式说明符
  2. Java 中整数的格式说明符
  3. Java 中%d 的使用
  4. Java 中%o%x 的使用
Java 中整数的格式说明符

本教程讨论 Java 中整数的格式说明符。我们将看到格式说明符并将它们用于整数以在屏幕上显示输出。

什么是 Java 中的格式说明符

格式说明符告诉屏幕上将打印哪种类型的数据,也用于从用户那里获取输入。这些格式说明符以百分比符号 (%) 开头,后跟表示数据类型的类型字符,例如 intstringfloat 等。

Java 中整数的格式说明符

我们可以格式化 shortShortbyteByteBigIntegerlongLong 的值。我们可以使用整数的格式说明符来格式化整数;我们还有各种可以与它们一起使用的 flags

  1. d - 用于将参数格式化为十进制整数;我们不能对此使用 # 标志。
  2. o - 用于将参数格式化为 base-8 整数,我们不能使用 '(', '+', ' ', ',' 标志。输出将从零开始 ( 0) 如果我们使用 # 标志。
  3. xX - 用于将参数格式化为 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 的使用

如果我们将 xo 与数据类型为 int/Integershort/ShortLong/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 一起使用,则输出以 00x0X 开始。检查以下截图,说明如何转换输出。

java 中整数的格式说明符 - 数字转换

作者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

相关文章 - Java Format Specifier