| Using [text blocks] for strings that span multiple lines can make code easier to | |
| read. | |
| For example, prefer this: | |
| ```java | |
| String message = | |
| """ | |
| 'The time has come,' the Walrus said, | |
| 'To talk of many things: | |
| Of shoes -- and ships -- and sealing-wax -- | |
| Of cabbages -- and kings -- | |
| And why the sea is boiling hot -- | |
| And whether pigs have wings.' | |
| """; | |
| ``` | |
| instead of this: | |
| ```java | |
| String message = | |
| "'The time has come,' the Walrus said,\n" | |
| + "'To talk of many things:\n" | |
| + "Of shoes -- and ships -- and sealing-wax --\n" | |
| + "Of cabbages -- and kings --\n" | |
| + "And why the sea is boiling hot --\n" | |
| + "And whether pigs have wings.'\n"; | |
| ``` | |
| ## Trailing newlines | |
| If the string should not contain a trailing newline, use a `\ ` to escape the | |
| final newline in the text block. That is, these two strings are equivalent: | |
| ```java | |
| String s = "hello\n" + "world"; | |
| ``` | |
| ```java | |
| String s = | |
| """ | |
| hello | |
| world\ | |
| """; | |
| ``` | |
| The suggested fixes for this check preserve the exact contents of the original | |
| string, so if the original string doesn't include a trailing newline the fix | |
| will use a `\ ` to escape the last newline. | |
| If the whitespace in the string isn't significant, for example because the | |
| string value will be parsed by a parser that doesn't care about the trailing | |
| newlines, consider removing the final `\ ` to improve the readability of the | |
| string. | |
| [text blocks]: https://docs.oracle.com/en/java/javase/23/text-blocks/index.html |