编辑:从JDK 12中删除了原始字符串文字,但是我将保留此问题,并在重新引入原始字符串文字时对其进行相应的编辑。
在测试Raw String Literals(Java 12中的预览功能)时,我遇到了以下代码片段:
System.out.println(`
Test 1
Test 2
Test 3
`);
输出以下内容:
Test 1
Test 2
Test 3
但是,我希望输出类似于以下内容:
Test 1
Test 2
Test 3
删除前导缩进以匹配预期格式的最简单方法是什么?
最佳答案
在Java 12中,将Raw String Literals作为预览功能附带的新方法将添加到java.lang.String
中,其中一种是String#align
。它的文档指出以下内容:
删除周围的垂直和水平空白边距
多行字符串的基本主体,同时保留相对
缩进。
...
对于每条非空白行,最小的前导空白字符为
删除。每个空格字符都被视为一个字符。在
特别是,制表符"\t"
(U + 0009)被认为是
单个字符;它不会扩展。
如果有任何空白行,则删除前导行和尾行。尾随空格是
保留。
每行后缀一个换行符"\n"
(U + 000A)。
要使用此方法,我们可以将代码更改为以下内容:
System.out.println(`
Test 1
Test 2
Test 3
`.align());
输出以下内容(后缀换行符,如文档所述):
Test 1
Test 2
Test 3