Итак, просто для пояснения, есть три способа сделать это: sub
, reverse.chomp.reverse
и lstrip
.
Я бы рекомендовал против sub
, потому чтоон немного менее читабелен, но также из-за того, как он работает: путем создания новой строки, которая наследуется от вашей старой строки.Кроме того, вам нужно регулярное выражение для чего-то довольно простого.
Итак, вы до reverse.chomp.reverse
и lstrip
.Скорее всего, вам нужен lstrip
, потому что он немного быстрее, но имейте в виду, что операции strip
не такие же, как операции chomp
.strip
удалит все начальные символы новой строки и пробелы:
"\n aaa\nbbb".reverse.chomp.reverse # => " aaa\nbbb"
"\n aaa\nbbb".lstrip # => "aaa\nbbb"
Если вы хотите убедиться, что вы удалили только один символ и что это определенно новая строка,используйте решение reverse.chomp.reverse
.Если вы учитываете все начальные символы новой строки и пробелы, идите с lstrip
.
Один случай, который я могу вспомнить для использования регулярных выражений, будет, если у вас есть неизвестное число \r
s и \n
в начале и хотите обрезать их все, но не трогайте пробелы.Вы можете использовать цикл и другие методы String для обрезки, но это будет просто уродливее.Влияние на производительность не имеет большого значения.