Java中的'String.format("...")'是什么意思?

4
String.format("%-" + 3 + "." + 3 + "s", givenString);

这应该是添加空格,但它没有效果。我在一个在线编译器上尝试了一下,它把数字加到字符串中。我不明白这是在做什么。有人可以解释一下吗?


你尝试过哪些给定的字符串值? - Scary Wombat
只是一个字符串。例如:"aa" - Tarun Kolla
1
你是否查看了String.format的javadoc并跟随链接查看更多信息?如果是,那么有什么不清楚的地方吗? - Mark Rotteveel
1个回答

4

public static String format(String format, Object... args) - 这是方法声明。

String format = "%-" + 3 + '.' + 3 + 's';   // = %-3.3s
String.format(format, givenString);

这用于动态构建format,但它里面没有变量,因此您可以将其替换为String.format("%-3.3s", givenString);

根据格式,它将打印一个最长为3个字符的字符串。每行保留3个符号,如果给定的字符串长度小于3个字符,则左对齐。

示例:

System.out.println(String.format("%-3.3s", "ab"));  // "ab "
System.out.println(String.format("%-3.3s", "abc"));  // "abc"
System.out.println(String.format("%-3.3s", "abcd"));  // "abc"
System.out.println(String.format("%-3.3s", "a") + String.format("%-3.3s", "b"));  // "a  b  "

更多内容请参阅文档


它还通过“-3”将字符串左对齐。 - smac89

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接