学习在 Java 中对字符串进行左填充,使其达到固定长度。例如,如果我们有一个长度为 10 的字符串,并且我们希望通过在其左侧添加空格来将其长度增加到 15。类似地,我们可以通过在数字左侧添加零来向其左侧填充数字。

以下示例演示了向字符串或数字添加左填充的效果。

frpkj.com //没有填充 frpkj.com //4个点空格左填充 ....frpkj.com //4个点的左填充 0000frpkj.com //4个0的左填充 

1.使用StringUtils.leftPad()

要添加左填充,最简单易行的方法是使用StringUtils.leftPad()方法。StringUtils类提供了许多有用的方法来操作字符串并修改它们以获得所需的效果。

使用StringUtils.rightPad()在 Java 中右填充字符串。

1.1. Maven依赖

首先在项目中添加最新版本的 Apache common-lang3库。

<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency> 

1.2. 句法

leftPad ()方法是一个重载方法,具有以下参数:

  • str – 要填充的字符串。它可以为null。它不会抛出NullPointerException ,而是在传递null参数时返回null 。
  • size – 要填充的大小,即结果字符串的总长度。
  • padStr – 要填充的字符串。
  • padChar – 要填充的字符。
public static String leftPad(str, size); public static String leftPad(str, size, padStr); public static String leftPad(str, size, padChar); 

1.3. 左侧填充空格

在下面的程序中,我们留下填充字符串“howtodoinjava”。第二条语句不添加任何填充,因为输入字符串的长度已经超过 10。

Assertions.assertEquals(null, StringUtils.leftPad(null, 10, " ")); Assertions.assertEquals("howtodoinjava", StringUtils.leftPad("howtodoinjava", 10, " ")); Assertions.assertEquals(" howtodoinjava", StringUtils.leftPad("howtodoinjava", 20, " ")); 

1.4. 左填充零

以下 Java 程序使用StringUtils.leftPad()方法通过向字符串添加前导零来向数字左填充零。

Assertions.assertEquals("0123456789", StringUtils.leftPad("123456789", 10, "0")); Assertions.assertEquals("0000000789", StringUtils.leftPad("789", 10, "0")); Assertions.assertEquals("0000056789", StringUtils.leftPad("56789", 10, "0")); 

2. 使用Strings.padStart()

Strings类是 Google Guava 库的一部分,提供修改字符串的实用方法。首先将最新版本的 Guava添加到项目中。

<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>31.1-jre</version> </dependency> 

现在我们可以使用Strings.padStart() API 添加左侧填充。

Assertions.assertEquals("0123456789", Strings.padStart("123456789", 10, '0')); Assertions.assertEquals(" howtodoinjava", Strings.padStart("howtodoinjava", 20, ' ')); 

3. 使用纯Java

我们可以创建自己的自定义 API,用提供的填充字符或字符串填充给定的字符串。它使我们能够灵活地进一步定制逻辑。例如,我们可以决定如果任何参数为null该怎么办。

以下方法使用String.repeat() API 创建左填充,然后追加输入字符串以构建最终字符串。

public static String leftPad(String input, int length, String padStr) { if(input == null || padStr == null){ return null; } if(input.length() >= length){ return input; } int padLength = length - input.length(); StringBuilder paddedString = new StringBuilder(); paddedString.append(padStr.repeat(padLength)); paddedString.append(input); return paddedString.toString(); } 

让我们测试一下该功能:

Assertions.assertEquals("0123456789", leftPad("123456789", 10, "0")); Assertions.assertEquals(" howtodoinjava", leftPad("howtodoinjava", 20, " ")); 

4.结论

在这个简短的 Java 教程中,我们学习了如何用空格(或任何填充字符)将字符串左填充到固定长度。我们还看到左侧填充了一个带有零的数字。我们学习了使用StringUtils、Strings类并创建我们自己的左侧填充解决方案。