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

时间:2011-12-13 12:34:48

标签: java text-formatting

我使用Formatter将Java代码输出到文件。我想在每行的开头添加一定数量的空格。我的问题是我找不到办法“整齐地”做到这一点。标准选项似乎只允许添加最小数量的空格,但不允许添加特定数量的空格。

作为一种解决方法,我目前正在做以下事情: out.format("%7s%s", "", "My text");但我只想用这个out.format("%7s", "My text");这两个参数来做。{/ p>

有没有人知道是否有办法使用标准格式化程序选项?

3 个答案:

答案 0 :(得分:0)

您可以将文字添加到字符串中。 重复任何字符串的另一种方法是使用此代码: -

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

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

答案 1 :(得分:0)

我不确定你想要什么:

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)

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

答案 2 :(得分:0)

使用Commons Lang

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