在嵌套地图的“漂亮打印”功能中,我需要一个简单的缩进函数来为我的结构预先添加所需的空间。 我想要一个简单的单线,我找到的最好的是2线解决方案。 理想情况下,我想要这个:
String indentSpace = new String(Arrays.fill(new char[indent], 0, indent-1, ' '));
这不起作用,因为Arrays.fill不是'流利';它返回无效。
该表达式的字面翻译对我来说太冗长了:
char[] chars = new char[indent];
Arrays.fill(chars , ' ');
String indentSpace = new String(chars);
最后,我选择了缺乏光彩的2线解决方案:
private final String indentSpace=" ";
...
String alternative = indentSpace.substring(0,indent % indentSpace.length());
这是次要的挑选,但我仍然对是否有更优雅的解决方案感到好奇。我认为,最后一个选项在性能方面可能是一个不错的选择。
任何需要?
答案 0 :(得分:9)
以下单行应该有效:
String indentSpace = new String(new char[indent]).replace('\0', ' ');
答案 1 :(得分:4)
如果确实行计数是您的主要衡量标准,那么这是一种创建String
n
空格的简洁方法:
String spaces = n == 0 ? "" : String.format("%" + n + "s", "");
表现可能不是那么好。
答案 2 :(得分:1)
如果您需要创建一个只包含空格的字符串,那么StringUtils.repeat将起作用:
String indentSpace = StringUtils.repeat(' ', indent);