Java中用空格或零右填充字符串

培训教学 潘老师 8个月前 (09-14) 180 ℃ (0) 扫码查看

本教程演示如何向字符串添加正确的填充,以使填充字符串的总长度应为固定数字。例如,如果我们有一个长度为 10 的字符串,并且我们希望通过添加正确的填充将其长度增加到 15。

panziye.com       //无填充
panziye.com       //4空格右填充
panziye.com....   //4点右填充
panziye.com0000   //4个0右填充

1. 使用纯Java

一个好的开始方法是创建一个满足所有要求的自定义 API。以下方法使用String.repeat() API 创建右侧填充,然后将其附加到输入字符串以构建最终字符串。

public static String rightPad(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(input);
  paddedString.append(padStr.repeat(padLength));

  return paddedString.toString();
}

我们可以测试rightPad()方法,如下所示:

Assertions.assertEquals("1234567890", rightPad("123456789", 10, "0"));
Assertions.assertEquals("howtodoinjava       ", rightPad("howtodoinjava", 20, " "));

2. 使用StringUtils.rightPad() API

StringUtils类提供了有用的方法来修改字符串以获得所需的效果。它的rightPad()使用指定的 pas 字符或字符串添加右填充。使用StringUtils.leftPad()在 Java 中向左填充字符串。

public static String rightPad(str, size);
public static String rightPad(str, size, padStr);
public static String rightPad(str, size, padChar);

2.1. Maven依赖

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

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

2.2. 右侧填充空格

在下面的程序中,我们右填充字符串“java”。空白区域用作填充字符。

Assertions.assertEquals(null, StringUtils.rightPad(null, 50, " "));
Assertions.assertEquals("java ", StringUtils.rightPad("java", 5, " "));
Assertions.assertEquals("java      ", StringUtils.rightPad("java", 10, " "));

2.2. 右填充零

在下面的程序中,我们右填充数字“123”。使用的填充字符为零。

Assertions.assertEquals("12300", StringUtils.rightPad("123", 5, "0"));
Assertions.assertEquals("1230000000", StringUtils.rightPad("123", 10, "0"));

3. 使用Strings.padEnd()

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

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

现在我们可以使用Strings.padEnd() API 添加正确的填充,如下所示:

Assertions.assertEquals("1234567890", Strings.padEnd("123456789", 10, '0'));
Assertions.assertEquals("howtodoinjava       ", Strings.padEnd("howtodoinjava", 20, ' '));

4.结论

在本 Java 字符串教程中,我们学习了使用空格、零或任何填充字符来右填充字符串,以修改字符串以使其具有固定长度。我们学会了使用StringUtils、Strings类并为正确的填充创建我们自己的解决方案。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/teach/9046.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】