Jac*_* G. 6 java string indentation rawstring java-12
编辑:原始字符串文字已从JDK 12中删除,但我将打开此问题并在重新引入Raw String Literals时相应地编辑它.
在测试Raw String Literals(这是Java 12中的预览功能)时,我遇到了以下代码片段:
System.out.println(`
Test 1
Test 2
Test 3
`);
Run Code Online (Sandbox Code Playgroud)
其中输出如下:
Test 1
Test 2
Test 3
Run Code Online (Sandbox Code Playgroud)
但是,我希望输出类似于以下内容:
Test 1
Test 2
Test 3
Run Code Online (Sandbox Code Playgroud)
删除前导缩进以匹配预期格式的最简单方法是什么?
伴随Raw String Literals作为Java 12中的预览功能是将要添加的新方法java.lang.String,其中之一就是String#align.其文档说明如下:
从多线串的基本主体周围移除垂直和水平白色空间边距,同时保留相对压痕.
...
对于每个非空白行,将删除最小前导空白字符.每个空格字符都被视为单个字符.特别是,制表符
"\t"(U + 0009)被认为是单个字符; 它没有扩大.前导和尾随空白行(如果有)将被删除.尾随空格被保留.
每行后缀换行符
"\n"(U + 000A).
要使用此方法,我们可以将代码更改为以下内容:
System.out.println(`
Test 1
Test 2
Test 3
`.align());
Run Code Online (Sandbox Code Playgroud)
其中输出以下内容(后缀为换行符,如文档所述):
Test 1
Test 2
Test 3
Run Code Online (Sandbox Code Playgroud)