如何在java 15文本块中保留尾随空格

Laz*_*ass 16 java

默认情况下,使用文本块定义字符串时,尾随空格将被删除,因为它被视为附带空格

var text = """
    blah blah       
    blah        
    """;

Run Code Online (Sandbox Code Playgroud)

如何保留文本块中的尾随空格,以便块中的每一行以相同的长度结尾?

Laz*_*ass 21

这可以通过使用行尾空格的转义序列来完成。例如

var text = """
    blah blah    \s       
    blah         \s
    """;
Run Code Online (Sandbox Code Playgroud)

请参阅https://docs.oracle.com/en/java/javase/15/text-blocks/index.html#new-escape-sequences

\s 转义序列简单地转换为空格(\040、ASCII 字符 32、空格)。由于转义序列在事件空格剥离之后才会被转换,因此 \s 可以充当栅栏来防止剥离尾随空格。在以下示例中,在每行末尾使用 \s 可保证每行正好有六个字符长。

String colors = """
   red  \s
   green\s
   blue \s
   """;
Run Code Online (Sandbox Code Playgroud)