Обращение строки

августа 8, 2008

Для обращения строк служит метод reverse (или его вариант для обращения «на месте» reverse!):
si = “Star Trek”
s2 = si. reverse if “kerT ratS”
si.reverse! S si теперь равно “kerT ratS”
Пусть требуется изменить порядок выступлений (а не символов). Тогда можно снова воспользоваться методом stringSsplit, который отдаст массив слов. В клас
Array тоже есть способ reverse, затем можно обратить [...]

Читать далее →

Сжатие строк

августа 8, 2008

Ради сокращения строк и файлов используется библиотека zlib.
Зачем может уйти сжимать строки? Очевидно, чтобы ускорить ввод/
вывод из базы данных, оптимизировать применение сети или усложнить распознавание строк.
В классах Deflate и Inflate существуют способы класса deflate и inflate соответственно.
У метода deflate (он выполняет сжатие) ест.Ь дополнительный параметр,
задающий режим сжатия. Он определяет компромисс между свойством сжатия и
скоростью. В [...]

Читать далее →

Кодирование и декодирование строк кодировке rot 13

августа 8, 2008

Rot 13 — наверное, наиболее слабый из популярных человечеству шифров. Исторически
он просто мешал «случайному» прочтению стиха. Он часто случается в
конференциях Usenet; к примеру, так можно закодировать потенциально обидную
шутку или сценарий фильма «Звездные войны. Эпизод 13» накануне премьеры.
Закон программирования состоит в смещении символов относительно начала алфавита (латинского) на 13: А преобразуется в N, В — в [...]

Читать далее →

Преобразование строки в число (десятичное или иное)

августа 8, 2008

Есть два важных способа превратить строку в число: методы integer и Float модуля Kernel и методы to_i и to_f класса string. (Имена, начинающиеся с большой буквы, к примеру Integer, обычно резервируются для особых целей преобразования.)
Простой факт тривиален, следующие два слова эквивалентны:
х = “123″.to_i # 123
у = Integer(”123″) # 123
Однако в случае, если в строке хранится [...]

Читать далее →

Разбор данных, разделенных запятыми

августа 8, 2008

Данные, которые разделены запятыми, часто попадаются при программировании.
Это в одном доме «наибольший общий делитель» всех размеров обмена
данными. К примеру, так передаются данные между несовместимыми СУБД или приложениями, которые не поддерживают никакого иного общего объема.
Будем считать, что данные показывают собой строки и числа, а все
строки заключены в кавычки. Еще предположим, что все символы должным порядком экранированы [...]

Читать далее →

Отложенная интерполяция

августа 8, 2008

Иногда полезно отложить интерполяцию значений в строку. Лучшего способа разрешить эту задачу не существует, однако можно использовать блоком:
str = proc {lx,y,z! «Числа равны #{х}, #{у) и #{z}» }
si = str.call(3,4,5) # Числа равны 3, 4 и 5.
s2 = str.call(7,8,9) # Числа равны 7, [...]

Читать далее →

Включение выражений в строку

августа 7, 2008

Это легко позволяет сделать синтаксическая конструкция # {}. Нет нужды думать о преобразовании, добавлении и конкатенации; нужно лишь интерполировать переменную али другое высказывание в все ристалище строки:
puts “#{temp_f} по Фаренгейту одинаково #{temp_c} по Цельсию”
puts “Значение определителя одинаково #{b*b - 4*а*с}.”
puts “#{word} это #{word.reverse} наоборот.”
Изнутри фигурных скобок могут находиться даже полные предложения. При этом возвращается [...]

Читать далее →

Удаление лишних пропусков

августа 6, 2008

Метод strip удаляет пропуски в начале и в конце строки, однако вариант strip! делает
же самое «на месте».
strl = “\t \nabc \t\n”
str2 = strl.strip # “abc”
str3 = strl.strip! # “abc”
# strl отныне также одинаково “abc”.
Под пропусками, сколь просто, понимаются пробелы, символы табуляции и перехода на новую строку. Чтоб удалить пропуски исключительно в начале аль как [...]

Читать далее →

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

августа 6, 2008

Часто бывает необходимо удалить лишние символы в конце строки. Типичный пример - удаление символа новой строки после чтения строки из внешнего источника. Метод chop удаляет последний символ строки (обычно это символ новой строки). Если перед символом новой строки находится символ перевода каретки (\r), он тоже удаляется. Причина такого поведения заключается в том, что разные операционные [...]

Читать далее →

Дописывание в самый конец строки

августа 6, 2008

Для конкатенации строк применяется оператор

Читать далее →