java - Java 中的这个 'String.format(".. .");' 是做什么的?

标签 java string-formatting

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

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

最佳答案

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);

根据格式,这将打印一个string,最大长度为3 个字符。它每行保留 3 个符号,如果 givenString 的长度小于 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  "

查看更多信息 Documentation

关于java - Java 中的这个 'String.format(".. .");' 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54320805/

相关文章:

java - ejp : how to save modified objects?

java - 尽管有 WRITE_SETTINGS 权限代码,应用程序在 Android OS v7.1 中仍会崩溃

c# - 在 DataGridView 中将字符串转换为日期时间

c# - C 夏普日期时间格式

java - org.zkoss.zk.ui.event.EventListener 不带参数

java - 检查 List<Map<String, String>> 是否为空

java - 内存不足错误 : PermGen Space -- Jasper Report with Spring running on Tomcat

python - python 3中的对齐、间距

f# - 我可以在 StructuredFormatDisplayAttribute 中使用多个属性吗?

Python 字符串格式 "%4d"%