maa*_*asg 4 java string indentation
在嵌套映射的"漂亮打印"功能中,我需要一个简单的缩进函数来为我的结构预先添加所需的空间.我想要一个简单的单线,我找到的最好的是2线解决方案.理想情况下,我想要这个:
String indentSpace = new String(Arrays.fill(new char[indent], 0, indent-1, ' '));
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为Arrays.fill不是"流利的"; 它返回无效.
根据我的喜好,该表达式的字面翻译过于冗长:
char[] chars = new char[indent];
Arrays.fill(chars , ' ');
String indentSpace = new String(chars);
Run Code Online (Sandbox Code Playgroud)
最后,我选择了一个缺乏光泽的2线解决方案:
private final String indentSpace=" ";
...
String alternative = indentSpace.substring(0,indent % indentSpace.length());
Run Code Online (Sandbox Code Playgroud)
这是次要的挑选,但我仍然对是否有更优雅的解决方案感到好奇.我认为最后一个选项在性能方面可能是一个不错的选择.
任何需要?
以下单行应该有效:
String indentSpace = new String(new char[indent]).replace('\0', ' ');
Run Code Online (Sandbox Code Playgroud)
如果确实行数是您的主要衡量指标,那么这是一种创建String带n空格的紧凑方法:
String spaces = n == 0 ? "" : String.format("%" + n + "s", "");
Run Code Online (Sandbox Code Playgroud)
性能可能不是很好。
| 归档时间: |
|
| 查看次数: |
6804 次 |
| 最近记录: |