Удаление хвостовых символов новой строки и прочих
Tagged:

Часто бывает необходимо удалить лишние символы в конце строки. Типичный
пример - удаление символа новой строки после чтения строки из внешнего источника.
Метод chop удаляет последний символ строки (обычно это символ новой
строки). Если перед символом новой строки находится символ перевода каретки
(\r), он тоже удаляется. Причина такого поведения заключается в том, что разные операционные системы неодинаково трактуют понятие «новой строки».
UNIX-подобных системах новая строка представляется символом \n. А в DOS
Windows для этой цели используется пара символов \r\n.
Обратите внимание, что при вызове варианта chop! операнд-источник модифицируется.
Важно еще отметить, что последний символ удаляется, даже если это не сим-
новой строки:
str = "abcxyz"
si = str.chop # "abcxy"
Поскольку символ новой строки присутствует не всегда, иногда удобнее при-
метод chomp:
str = "abcxyz"
str2 = "123\n"
str3 = "123\r"
str4 = "123\r\n"
si = strJchomp # "abcxyz"
s2 = str2.chomp # "123"
# Если установлен стандартный разделитель записей, то удаляется не только
# \п, но также \г и \г\п.
s3 = str3.chomp # "123"
s4 = str4.chomp # "123"
Как и следовало ожидать, имеется также метод chomp! для замены «на месте».
Если методу chomp передана строка-параметр, то удаляются перечисленные в
ней символы, а не подразумеваемый по умолчанию разделитель записей. Кстати,
разделитель записей встречается в середине строки, то он не удаляется:
strl = "abcxyz"
str2 = "abcxyz"
s1 = strl.chomp("yz") # "abcx"
s2 = str2.chomp("x") # "abcxyz"