使用java.util.Formatter添加字符串开头的空格的确切数目

问题描述:

我正在使用Formatter将Java代码输出到文件。我想在每行的开头添加一个特定数量的空格。我的问题是我无法找到一个“干净利落”的方法。标准选项似乎只允许添加最少数量的空间,但不能添加特定数量的空间。使用java.util.Formatter添加字符串开头的空格的确切数目

作为解决办法,我目前正在执行以下操作: out.format("%7s%s", "", "My text");但我想只用两个参数来完成,如out.format("%7s", "My text");

有谁知道是否有办法使用标准的Formatter选项来做到这一点?

我不太确定你想要的位置:

out.format("xxx%10sxxx", "My text"); 
// prints: xxx My textxxx 

虽然:

out.format("xxx%-10sxxx", "My text"); 
// prints: xxxMy text xxx 

据我所知,目前还没有办法做旧的C风格的格式来在参数“%* s”中指定大小,因为那样你可以通过(str.length() + 7)

恐怕你的方式似乎是最“整洁”的。如果你能解释为什么你不喜欢它,也许我们可以找到一个更好的解决方法。

+0

通过整齐我的意思是,不必增加只存在欺骗Formattor到印刷的空间我要的号码一个额外的参数。它看起来很混乱,会混淆不了解这个问题的人。也许一个返回一串空格的方法对于这种情况会更好。 – toc777

您可以在文本中加入文本。 另一种方式来reapet您可以使用此代码的任何字符串: -

String str = "abc"; 
String repeated = StringUtils.repeat(str, 3); 

这里StringUtils的是org.apache.commons.lang3.StringUtils类。

使用Commons Lang

String line = "Hello World!"; 
int numberOfSpaces = 2; 
String lineWithSpacePadding = StringUtils.leftPad(line, line.length() + numberOfSpaces);