编辑:原始字符串文字已从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
删除最前面的缩进以匹配预期格式的最简单方法是什么?
答案 0 :(得分:7)
将原始字符串文字作为Java 12中的预览功能,是将添加到java.lang.String
中的新方法,其中一种是String#align
。其文档指出以下内容:
从周围删除垂直和水平空白边距 多行字符串的基本主体,同时保留相对 压痕。
...
对于每条非空白行, min 前导空白字符为 删除。每个空格字符都被视为一个字符。在 特别是,制表符
"\t"
(U + 0009)被认为是 单个字符;它不会展开。如果有,则删除前导空白行和尾随空白行。尾随空格是 保存。
每行后缀一个换行符
"\n"
(U + 000A)。
要使用此方法,我们可以将代码更改为以下内容:
System.out.println(`
Test 1
Test 2
Test 3
`.align());
输出以下内容(后缀为换行符,如文档所述):
Test 1
Test 2
Test 3