[英]One-liner for variable space indentation
在嵌套 map 的“漂亮打印”function 中,我需要一个简单的缩进 function 来为我的结构添加所需的空间。 我想要一个简单的单线,我发现最好的是 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());
这是轻微的挑剔,但我仍然对是否有更优雅的解决方案感到好奇。 我认为最后一个选项在性能方面可能是一个不错的选择。
有什么需要吗?
以下单行应该工作:
String indentSpace = new String(new char[indent]).replace('\0', ' ');
如果确实行数是您的主要度量,那么这是创建具有n
空格的String
的紧凑方法:
String spaces = n == 0 ? "" : String.format("%" + n + "s", "");
性能可能不是那么好。
如果您需要创建一个仅包含空格的字符串,则StringUtils.repeat将起作用:
String indentSpace = StringUtils.repeat(' ', indent);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.