如何在Java中填充字符串?

2022-08-31 04:27:16

有没有一些简单的方法来填充Java中的字符串?

似乎应该在一些类似StringUtil的API中,但我找不到任何可以做到这一点的东西。


答案 1

从Java 1.5开始,String.format()可用于左/右垫给定的字符串。

public static String padRight(String s, int n) {
     return String.format("%-" + n + "s", s);  
}

public static String padLeft(String s, int n) {
    return String.format("%" + n + "s", s);  
}

...

public static void main(String args[]) throws Exception {
 System.out.println(padRight("Howto", 20) + "*");
 System.out.println(padLeft("Howto", 20) + "*");
}

输出为:

Howto               *
               Howto*

答案 2

填充为 10 个字符:

String.format("%10s", "foo").replace(' ', '*');
String.format("%-10s", "bar").replace(' ', '*');
String.format("%10s", "longer than 10 chars").replace(' ', '*');

输出:

  *******foo
  bar*******
  longer*than*10*chars

显示“*”表示密码字符:

String password = "secret123";
String padded = String.format("%"+password.length()+"s", "").replace(' ', '*');

输出与密码字符串具有相同的长度:

  secret123
  *********