Итак, просто для уточнения, есть три способа, которыми вы можете это поступить: 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
s в начале и хотите обрезать их все, но не касаться каких-либо пробелов. Вы могли бы использовать цикл и больше методов String для обрезки, но это было бы просто уродливее. Последствия производительности на самом деле не так важны.
Вы хотите оставить символ перевода строки на месте (в конце строки)? –