字符串格式(列)

时间:2018-01-19 09:56:39

标签: java string-formatting

java中是否存在原始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);
  } 
} 

3 个答案:

答案 0 :(得分:2)

Java为String.format()提供了各种格式和数字格式化选项。

不需要额外的库,它是一个内置功能。<​​/ p>

语法与您的示例非常相似。基本上,要打印String,您可以使用%s占位符。对于十进制数字,请使用%d。请参阅上面的链接以获取所有可能类型的完整列表。

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定义String类型,-用于左对齐,10定义填充的宽度。

答案 1 :(得分:2)

Java还有一个String格式选项:

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

有许多格式说明符:

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

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

您可以使用Java format examples

答案 2 :(得分:1)

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

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