Java 如何填充格式化字符串
这似乎是一个简单的问题,但老实说,我似乎没有解决这个问题。Java 如何填充格式化字符串,java,Java,这似乎是一个简单的问题,但老实说,我似乎没有解决这个问题。 我有一个格式化字符串,如下所示: String msg = String.format("Current player: %1$s", status.getCurrentPlayer().getName()); 我想用10个空格来填充它。我试过: String pad = String.format("%1$10s", msg); 但它似乎不起作用,尽管我用了一个未格式化的字符串: String pad = String.forma
我有一个格式化字符串,如下所示:
String msg = String.format("Current player: %1$s", status.getCurrentPlayer().getName());
我想用10个空格来填充它。我试过:
String pad = String.format("%1$10s", msg);
但它似乎不起作用,尽管我用了一个未格式化的字符串:
String pad = String.format("%1$10s", "some string");
显然,它起了作用。“味精”有什么不让我填的 “味精”有什么不让我填的 超过10个字符
10
是类的宽度
阅读这些文档,您将看到
可选宽度是非负十进制整数,表示要写入输出的最小字符数
所以,最小值,意味着任何长度超过该值的字符串都按原样打印
如果要填充,只需在字符串长度上加10
String msg = "some really, really long message";
String fmt = "%1$" + (10 + msg.length()) + "s";
String pad = String.format(fmt, msg);
// " some really, really long message"
这将在玩家姓名后添加10个空格。如果要考虑球员姓名的长度,可以执行以下操作:
String msg = "Current player: "
+ status.getCurrentPlayer().getName()
+ new String(new
char[10 - status.getCurrentPlayer().getName().Length ]).replace('\0', ' ');
$10
可容纳10个空格。它不填充10个空格。换句话说,“Current pl”
本身就是10个字符。任何更长的空间都不能填充,所以$x总共提供了x个空间。我以前没听说过。谢谢。只需要x
,而不是$
。定位为1$
。格式化程序以%
启动,字符串转换为s
。
String msg = "Current player: "
+ status.getCurrentPlayer().getName()
+ new String(new
char[10 - status.getCurrentPlayer().getName().Length ]).replace('\0', ' ');