Программирование на языке Ruby
Шрифт:
2.30. Удаление дубликатов
Цепочки повторяющихся символов можно сжать до одного методом
Если указан параметр, то будут удаляться только дубликаты заданных в нем символов:
Этот параметр подчиняется тем же правилам, что и параметр метода
2.31. Удаление заданных символов
Метод
Этот параметр подчиняется тем же правилам, что и параметр метода
2.32. Печать специальных символов
Метод
При стандартном значении переменной
2.33. Генерирование последовательности строк
Изредка бывает необходимо получить «следующую» строку. Так, следующей для строки
He рекомендуется применять этот метод, если точно не известно, что начальное значение предсказуемо и разумно. Если начать с какой-нибудь экзотической строки, то рано или поздно вы получите странный результат.
Существует также метод
Еще раз подчеркнем, что эта возможность используется редко, да и то на ваш страх и риск. Кстати, метода, возвращающего «предшествующую» строку, не существует.
2.34. Вычисление 32-разрядного CRC
Контрольный код циклической избыточности (Cyclic Redundancy Checksum, CRC) — хорошо известный способ получить «сигнатуру» файла или произвольного массива байтов. CRC обладает тем свойством, что вероятность получения одинакового кода для разных входных данных равна 1/2**N, где N — число битов результата (чаще всего 32).
Вычислить его позволяет библиотека zlib, написанная Уэно Кацухиро (Ueno Katsuhiro). Метод
В качестве необязательного второго параметра можно передать ранее вычисленный CRC. Результат получится такой, как если бы конкатенировать обе строки и вычислить CRC для объединения. Это полезно, например, когда нужно вычислить CRC файла настолько большого, что прочитать его можно только по частям.
2.35. Вычисление МD5-свертки строки
Алгоритм MD5 вырабатывает 128-разрядный цифровой отпечаток или дайджест сообщения произвольной длины. Это разновидность свертки, то есть функция шифрования односторонняя, так что восстановить исходное сообщение по дайджесту невозможно. Для Ruby имеется расширение, реализующее MD5; интересующиеся могут найти его в каталоге
Для создания нового объекта MD5 есть два эквивалентных метода класса:
Есть также четыре метода экземпляра:
Можно создать объект и передать ему данные за одну операцию: