Необработанные строковые литералы - удаление ведущих отступов - PullRequest
0 голосов
/ 18 ноября 2018

Редактировать : Необработанные строковые литералы были удалены из JDK 12, но я собираюсь оставить этот вопрос открытым и соответствующим образом отредактирую его при каждом вводе необработанных строковых литералов.


При тестировании необработанных строковых литералов (которые являются функцией предварительного просмотра в Java 12) я наткнулся на следующий фрагмент кода:

System.out.println(`
        Test 1
            Test 2
                Test 3
`);

, который выводит следующее:

          
        Test 1
            Test 2
                Test 3
                          

Однако я хочу, чтобы вывод был похож на следующее:

Test 1
    Test 2
        Test 3

Какой самый простой способ удалить начальный отступ, чтобы он соответствовал предполагаемому формату?

1 Ответ

0 голосов
/ 18 ноября 2018

Сопровождение необработанных строковых литералов в качестве функции предварительного просмотра в Java 12 - это новые методы, которые будут добавлены в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...