Java 字符串格式(列)

Java String Formatting (Columns)

Java 中是否有本机代码或库可以像下面用 C# 制作的那样格式化字符串?

来源:Format a string into columns (C#)

public string DropDownDisplay { 
  get { 
    return String.Format("{0,-10} - {1,-10}, {2, 10} - {3,5}"), 
                          Name, City, State, ID);
  } 
} 

Java 为 String.format() 提供了多种设置文本和数字格式的选项。

不需要额外的库,它是内置功能。

语法与您的示例非常相似。基本上,要打印一个字符串,您可以使用 %s 占位符。对于小数,使用 %d。请参阅上面的 link 以获得所有可能类型的完整列表。

String name = "Saskia";
int age = 23;
String formattedText = String.format("%s is %d years old.", name, age);

如果您想要类似列的输出,您可以为额外的填充和对齐添加标志。

String formattedText = String.format("%-10s is %-5d years old.", name, age);

%-10s中,%s定义了字符串类型,-用于左对齐,10定义了填充的宽度。

Java 还有一个 String 格式选项:

public String DropDownDisplay(){
    return String.format("%-10s - %-10s, %10s - %5s", "name", "city", "state", "id");
}

有许多格式说明符:

  • %s - 字符串值
  • %d - 十进制整数

要指定宽度,您可以使用 %SomeNumber 选项,
正数将在指定宽度内右对齐,负数将左对齐.

这是 Java format examples,您可以使用

简单的 String 方法 format 提供与 C 的 printf 相同的方法。

但是 JDK class java.text.MessageFormat 提供了一组非常丰富的格式化方法。