使用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)
。
恐怕你的方式似乎是最“整洁”的。如果你能解释为什么你不喜欢它,也许我们可以找到一个更好的解决方法。
答
您可以在文本中加入文本。 另一种方式来reapet您可以使用此代码的任何字符串: -
String str = "abc";
String repeated = StringUtils.repeat(str, 3);
这里StringUtils的是org.apache.commons.lang3.StringUtils类。
答
String line = "Hello World!";
int numberOfSpaces = 2;
String lineWithSpacePadding = StringUtils.leftPad(line, line.length() + numberOfSpaces);
通过整齐我的意思是,不必增加只存在欺骗Formattor到印刷的空间我要的号码一个额外的参数。它看起来很混乱,会混淆不了解这个问题的人。也许一个返回一串空格的方法对于这种情况会更好。 – toc777