Необработанные строковые литералы - удаление ведущих отступов
При тестировании необработанных строковых литералов (которые являются функцией предварительного просмотра в Java 12) я натолкнулся на следующий фрагмент кода:
System.out.println(`
Test 1
Test 2
Test 3
`);
Который выводит следующее:
Test 1
Test 2
Test 3
Тем не менее, я хочу, чтобы вывод был похож на следующее:
Test 1
Test 2
Test 3
Какой самый простой способ удалить начальный отступ, чтобы он соответствовал предполагаемому формату?
1 ответ
Сопровождение необработанных строковых литералов в качестве функции предварительного просмотра в 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