Объект String в Ruby содержит произвольную последовательность из одного или нескольких байтов и манипулирует ими, обычно представляя символы, представляющие человеческий язык.
Простейшие строковые литералы заключены в одинарные кавычки (символ апострофа). Текст в кавычках является значением строки —
'This is a simple Ruby string literal'
Если вам нужно поместить апостроф внутри строкового литерала в одинарных кавычках, поставьте перед ним обратную косую черту, чтобы интерпретатор Ruby не думал, что он заканчивает строку —
'Won\'t you read O\'Reilly\'s book?'
Обратная косая черта также работает, чтобы избежать другой обратной косой черты, так что вторая обратная косая черта сама по себе не интерпретируется как escape-символ.
Ниже приведены особенности Ruby, связанные со строками.
Замена выражения
Подстановка выражений — это способ встраивания значения любого выражения Ruby в строку, используя # {и} —
#!/usr/bin/ruby
x, y, z =12,36,72
puts "The value of x is #{ x }."
puts "The sum of x and y is #{ x + y }."
puts "The average was #{ (x + y + z)/3 }."
Это даст следующий результат —
The value of x is 12.
The sum of x and y is 48.
The average was 40.
Строки с разделителями
С помощью общих строк с разделителями вы можете создавать строки внутри пары совпадающих, хотя произвольных символов-разделителей, например!, (, {, <И т. Д., Перед которыми стоит символ процента (%). Q, q и x имеют специальные значения Общие строки с разделителями могут быть —
%{Ruby is fun.} equivalent to "Ruby is fun."
%Q{ Ruby is fun. } equivalent to " Ruby is fun. "
%q[Ruby is fun.] equivalent to a single-quoted string
%x!ls! equivalent to back tick command output `ls`
Побег персонажей
ПРИМЕЧАНИЕ. — В строке в двойных кавычках экранирующий символ интерпретируется; в строке в одинарных кавычках сохраняется экранирующий символ.
Обратная косая черта
Шестнадцатеричный символ
Описание
\ а
0x07
Звонок или оповещение
\ б
0x08
возврат на одну позицию
\ сх
Контроль-х
\ Cx
Контроль-х
\ е
0x1b
Побег
\ е
0x0c
Под.стр
\ M- \ Cx
Meta-Control-х
\ п
0x0a
Новая линия
\ NNN
Восьмеричное обозначение, где n находится в диапазоне 0,7
\р
0x0d
Возврат каретки
\ s
0x20
Космос
\ т
0x09
табуляция
\ v
0x0B
Вертикальная вкладка
\Икс
Персонаж х
\ Хпп
Шестнадцатеричное обозначение, где n находится в диапазоне 0,9, af или AF
ПРИМЕЧАНИЕ. — В строке в двойных кавычках экранирующий символ интерпретируется; в строке в одинарных кавычках сохраняется экранирующий символ.
Кодировка символов
Набор символов по умолчанию для Ruby — ASCII, символы которого могут быть представлены одиночными байтами. Если вы используете UTF-8 или другой современный набор символов, символы могут быть представлены от одного до четырех байтов.
Вы можете изменить свой набор символов, используя $ KCODE в начале вашей программы, например так:
$KCODE = 'u'
Sr.No.
Код и описание
1
ASCII (такой же, как ни один). Это по умолчанию.
2
е
EUC.
3
N
Нет (так же, как ASCII).
4
U
UTF-8.
ASCII (такой же, как ни один). Это по умолчанию.
е
EUC.
N
Нет (так же, как ASCII).
U
UTF-8.
Строковые встроенные методы
Нам нужен экземпляр объекта String для вызова метода String. Ниже приведен способ создания экземпляра объекта String —
new [String.new(str = "")]
Это вернет новый строковый объект, содержащий копию str . Теперь, используя объект str , мы все можем использовать любые доступные методы экземпляра. Например —
#!/usr/bin/ruby
myStr =String.new("THIS IS TEST")
foo = myStr.downcase
puts "#{foo}"
Это даст следующий результат —
this is test
Sr.No.
Методы и описание
1
str% arg
Форматирует строку, используя спецификацию формата. Аргумент должен быть массивом, если он содержит более одной подстановки. Для получения информации о спецификации формата см. Sprintf в разделе «Модуль ядра».
2
str * integer
Возвращает новую строку, содержащую целое число раз str. Другими словами, str повторяется целое число.
3
str + other_str
Объединяет other_str на ул.
4
ул << объект
Объединяет объект на ул. Если объект является Fixnum в диапазоне 0,255, он преобразуется в символ. Сравните это с concat.
5
str <=> other_str
Сравнивает str с other_str, возвращая -1 (меньше), 0 (равно) или 1 (больше). Сравнение чувствительно к регистру.
6
str == obj
Проверяет str и obj на равенство. Если obj не является строкой, возвращает false; возвращает true, если str <=> obj возвращает 0.
7
str = ~ obj
Сопоставляет str с шаблоном регулярного выражения obj. Возвращает позицию, где начинается матч; иначе ложно.
8
str.capitalize
Заглавная строка.
9
str.capitalize!
То же, что и с заглавной буквы, но изменения сделаны на месте.
10
str.casecmp
Делает сравнение строк без учета регистра.
11
str.center
Центрирует строку.
12
str.chomp
Удаляет разделитель записей ($ /), обычно \ n, с конца строки. Если разделитель записей не существует, ничего не делает.
13
str.chomp!
То же, что chomp, но изменения сделаны на месте.
14
str.chop
Удаляет последний символ в ул.
15
str.chop!
То же, что и chop, но изменения сделаны на месте.
16
str.concat (other_str)
Объединяет other_str на ул.
17
str.count (str, …)
Считает один или несколько наборов символов. Если существует более одного набора символов, считается пересечение этих наборов
18
str.crypt (other_str)
Применяет односторонний криптографический хеш к str. Аргументом является строка соли, которая должна быть длиной два символа, каждый символ находится в диапазоне az, AZ, 0.9,. или же /.
19
str.delete (other_str, …)
Возвращает копию строки со всеми символами в пересечении удаленных аргументов.
20
str.delete! (other_str, …)
То же самое, что и удаление, но изменения сделаны на месте.
21
str.downcase
Возвращает копию строки со всеми заглавными буквами, замененными строчными.
22
str.downcase!
То же, что и в нижнем регистре, но изменения сделаны на месте.
23
str.dump
Возвращает версию str, в которой все непечатаемые символы заменены на \ nnn, а все специальные символы экранированы.
24
str.each (separator = $ /) {| substr |блок}
Разделяет str, используя аргумент в качестве разделителя записей ($ / по умолчанию), передавая каждую подстроку в предоставленный блок.
25
str.each_byte {| fixnum |блок}
Передает каждый байт от str к блоку, возвращая каждый байт в виде десятичного представления байта.
Разделяет str, используя аргумент в качестве разделителя записей ($ / по умолчанию), передавая каждую подстроку в предоставленный блок.
27
str.empty?
Возвращает true, если str пуст (имеет нулевую длину).
28
str.eql? (другое)
Две строки равны, если они имеют одинаковую длину и содержание.
29
str.gsub (шаблон, замена) [или]
str.gsub (pattern) {| match |блок}
Возвращает копию str со всеми вхождениями шаблона, замененными либо заменой, либо значением блока. Шаблон обычно будет регулярным выражением; если это String, то метасимволы регулярного выражения не будут интерпретироваться (то есть / \ d / будет соответствовать цифре, но \ d будет соответствовать обратной косой черте, за которой следует ‘d’).
Ссылки str, используя следующие аргументы: один Fixnum, возвращает код символа в fixnum; два Fixnum, возвращает подстроку, начиная со смещения (первый fixnum) до длины (второй fixnum); диапазон, возвращает подстроку в диапазоне; регулярное выражение возвращает часть совпавшей строки; регулярное выражение с fixnum, возвращает сопоставленные данные в fixnum; other_str возвращает подстроку, соответствующую other_str. Отрицательный Fixnum начинается в конце строки с -1.
Заменить (назначить) всю или часть строки. Синоним среза!
32
str.gsub! (шаблон, замена) [или] str.gsub! (шаблон) {| match | block}
Выполняет подстановки String # gsub на месте, возвращая str или nil, если подстановки не выполнялись.
33
str.hash
Возвращает хеш на основе длины строки и содержимого.
34
str.hex
Обрабатывает начальные символы из str как строку шестнадцатеричных цифр (с необязательным знаком и необязательным 0x) и возвращает соответствующее число. Ноль возвращается при ошибке.
35
str.include?other_str [или] str.include?Fixnum
Возвращает true, если str содержит данную строку или символ.
36
str.index (подстрока [, смещение]) [или]
str.index (fixnum [, offset]) [or]
str.index (регулярное выражение [, смещение])
Возвращает индекс первого вхождения данной подстроки, символа (fixnum) или шаблона (regexp) в строке str. Возвращает ноль, если не найден. Если присутствует второй параметр, он указывает позицию в строке, с которой начинается поиск.
37
str.insert (index, other_str)
Вставляет other_str перед символом по указанному индексу, изменяя str. Отрицательные индексы отсчитываются от конца строки и вставляются после заданного символа. Намерение состоит в том, чтобы вставить строку так, чтобы она начиналась с заданного индекса.
38
str.inspect
Возвращает версию для печати str с экранированными специальными символами.
39
str.intern [or] str.to_sym
Возвращает Символ, соответствующий str, создавая символ, если он не существовал ранее.
40
str.length
Возвращает длину ул. Сравните размер.
41
str.ljust (integer, padstr = »)
Если целое число больше, чем длина строки, возвращает новую строку с целым числом длины с выравниванием по левому краю и дополнением padstr; в противном случае возвращает ул.
42
str.lstrip
Возвращает копию str с удаленными начальными пробелами.
43
str.lstrip!
Удаляет начальные пробелы из str, возвращая nil, если не было внесено никаких изменений.
44
str.match (шаблон)
Преобразует шаблон в регулярное выражение (если он еще не был), а затем вызывает его метод сопоставления на str.
45
str.oct
Обрабатывает первые символы строки как строку восьмеричных цифр (с необязательным знаком) и возвращает соответствующее число. Возвращает 0, если преобразование не удалось.
46
str.replace (other_str)
Заменяет содержимое и зараженность str соответствующими значениями в other_str.
47
str.reverse
Возвращает новую строку с символами из str в обратном порядке.
48
str.reverse!
Реверс на ул.
49
str.rindex (подстрока [, fixnum]) [или]
str.rindex (fixnum [, fixnum]) [или]
str.rindex (regexp [, fixnum])
Возвращает индекс последнего вхождения данной подстроки, символа (fixnum) или шаблона (regexp) в str. Возвращает ноль, если не найден. Если присутствует второй параметр, он указывает позицию в строке для завершения поиска. Символы, выходящие за пределы этой точки, рассматриваться не будут.
50.
str.rjust (integer, padstr = »)
Если целое число больше, чем длина строки, возвращает новую строку с целым числом длины с выравниванием по правому краю строки с дополнением padstr; в противном случае возвращает ул.
51
str.rstrip
Возвращает копию str с удаленными конечными пробелами.
52
str.rstrip!
Удаляет завершающие пробелы из str, возвращая ноль, если не было внесено никаких изменений.
53
str.scan (шаблон) [или]
str.scan (pattern) {| match, … |блок}
Обе формы перебирают str, совпадая с шаблоном (который может быть регулярным выражением или строкой). Для каждого совпадения результат генерируется и либо добавляется в массив результатов, либо передается в блок. Если шаблон не содержит групп, каждый отдельный результат состоит из совпавшей строки, $ &. Если шаблон содержит группы, каждый отдельный результат сам является массивом, содержащим одну запись на группу.
Удаляет указанную часть из str и возвращает удаленную часть. Формы, которые принимают Fixnum, вызовут IndexError, если значение выходит за пределы диапазона; форма Range вызовет RangeError, а формы Regexp и String будут молча игнорировать назначение.
55
str.split (pattern = $, [limit])
Делит str на подстроки на основе разделителя, возвращая массив этих подстрок.
Если pattern является String, то его содержимое используется в качестве разделителя при разбиении str. Если шаблон представляет собой один пробел, str разделяется на пробельные символы, причем начальные пробельные символы и серии непрерывных пробельных символов игнорируются.
Если pattern является регулярным выражением, str делится там, где образец совпадает. Всякий раз, когда шаблон соответствует строке нулевой длины, строка разбивается на отдельные символы.
Если шаблон опущен, значение $; используется. Если $; равен nil (это значение по умолчанию), str разделяется на пробелы, как если бы « были указаны.
Если параметр limit пропущен, завершающие нулевые поля подавляются. Если limit — положительное число, будет возвращено не более того количества полей (если limit — 1, вся строка возвращается как единственная запись в массиве). При отрицательном значении число возвращаемых полей не ограничено, а завершающие нулевые поля не подавляются.
56
str.squeeze ([other_str] *)
Создает набор символов из параметра (ов) other_str, используя процедуру, описанную для String # count. Возвращает новую строку, в которой серии одного и того же символа, встречающиеся в этом наборе, заменяются одним символом. Если аргументы не указаны, все серии идентичных символов заменяются одним символом.
57
str.squeeze! ([other_str] *)
Сжимает str на месте, возвращая либо str, либо ноль, если не было внесено никаких изменений.
58
str.strip
Возвращает копию str с удаленными начальными и конечными пробелами.
59
str.strip!
Удаляет начальные и конечные пробелы с ул. Возвращает ноль, если str не был изменен.
60
str.sub (шаблон, замена) [или]
str.sub (pattern) {| match |блок}
Возвращает копию строки с первым вхождением шаблона, замененным либо заменой, либо значением блока. Шаблон обычно будет регулярным выражением; если это строка, то метасимволы регулярных выражений интерпретироваться не будут.
61
str.sub! (шаблон, замена) [или]
str.sub! (pattern) {| match |блок}
Выполняет подстановки String # sub на месте, возвращая str или nil, если подстановки не выполнялись.
62
str.succ [или] str.next
Возвращает преемника на ул.
63
str.succ![или] str.next!
Эквивалент String # succ, но изменяет получателя на месте.
64
сумма (n = 16)
Возвращает базовую n-битную контрольную сумму символов в str, где n — необязательный параметр Fixnum, значение по умолчанию равно 16. Результатом является просто сумма двоичного значения каждого символа в str по модулю 2n — 1. Это не особенно хорошая контрольная сумма.
65
str.swapcase
Возвращает копию строки с заглавными буквенными символами, преобразованными в строчные и строчными.
66
str.swapcase!
Эквивалентно String # swapcase, но изменяет получателя на месте, возвращая str или nil, если не было внесено никаких изменений.
67
str.to_f
> Возвращает результат интерпретации начальных символов в str как числа с плавающей запятой. Посторонние символы после конца действительного числа игнорируются. Если в начале строки str нет действительного числа, возвращается 0.0. Этот метод никогда не вызывает исключение.
68
str.to_i (база = 10)
Возвращает результат интерпретации начальных символов в str как целочисленное основание (основание 2, 8, 10 или 16). Посторонние символы после конца действительного числа игнорируются. Если в начале строки str нет действительного числа, возвращается 0. Этот метод никогда не вызывает исключение.
69
str.to_s [или] str.to_str
Возвращает получатель.
70
str.tr (from_str, to_str)
Возвращает копию str с символами в from_str, замененными соответствующими символами в to_str. Если to_str короче, чем from_str, он дополняется последним символом. Обе строки могут использовать нотацию c1.c2 для обозначения диапазонов символов, а from_str может начинаться с ^, который обозначает все символы, кроме перечисленных.
71
str.tr! (from_str, to_str)
Переводит str на место, используя те же правила, что и String # tr. Возвращает str или nil, если не было внесено никаких изменений.
72
str.tr_s (from_str, to_str)
Обрабатывает копию str, как описано в разделе String # tr, затем удаляет повторяющиеся символы в регионах, на которые повлиял перевод.
73
str.tr_s! (from_str, to_str)
Выполняет обработку String # tr_s для str на месте, возвращает str или nil, если не было внесено никаких изменений.
74
str.unpack (формат)
> Декодирует str (который может содержать двоичные данные) в соответствии со строкой формата, возвращая массив каждого извлеченного значения. Строка формата состоит из последовательности односимвольных директив, обобщенных в Таблице 18. За каждой директивой может следовать число, указывающее количество повторений с этой директивой. Звездочка (*) будет использовать все оставшиеся элементы. Каждая из директив sSiIlL может сопровождаться подчеркиванием (_), чтобы использовать собственный размер базовой платформы для указанного типа; в противном случае он использует независимый от платформы постоянный размер. Пробелы игнорируются в строке формата.
75
str.upcase
Возвращает копию str, в которой все строчные буквы заменены на прописные. Операция не зависит от локали. Это касается только символов от a до z.
76
str.upcase!
Изменяет содержимое строки в верхний регистр, возвращая ноль, если не было сделано никаких изменений.
77
str.upto (other_str) {| s |блок}
Выполняет итерацию последовательных значений, начиная с str и заканчивая включением other_str, передавая каждое значение по очереди в блок. Метод String # succ используется для генерации каждого значения.
str% arg
Форматирует строку, используя спецификацию формата. Аргумент должен быть массивом, если он содержит более одной подстановки. Для получения информации о спецификации формата см. Sprintf в разделе «Модуль ядра».
str * integer
Возвращает новую строку, содержащую целое число раз str. Другими словами, str повторяется целое число.
str + other_str
Объединяет other_str на ул.
ул << объект
Объединяет объект на ул. Если объект является Fixnum в диапазоне 0,255, он преобразуется в символ. Сравните это с concat.
str <=> other_str
Сравнивает str с other_str, возвращая -1 (меньше), 0 (равно) или 1 (больше). Сравнение чувствительно к регистру.
str == obj
Проверяет str и obj на равенство. Если obj не является строкой, возвращает false; возвращает true, если str <=> obj возвращает 0.
str = ~ obj
Сопоставляет str с шаблоном регулярного выражения obj. Возвращает позицию, где начинается матч; иначе ложно.
str.capitalize
Заглавная строка.
str.capitalize!
То же, что и с заглавной буквы, но изменения сделаны на месте.
str.casecmp
Делает сравнение строк без учета регистра.
str.center
Центрирует строку.
str.chomp
Удаляет разделитель записей ($ /), обычно \ n, с конца строки. Если разделитель записей не существует, ничего не делает.
str.chomp!
То же, что chomp, но изменения сделаны на месте.
str.chop
Удаляет последний символ в ул.
str.chop!
То же, что и chop, но изменения сделаны на месте.
str.concat (other_str)
Объединяет other_str на ул.
str.count (str, …)
Считает один или несколько наборов символов. Если существует более одного набора символов, считается пересечение этих наборов
str.crypt (other_str)
Применяет односторонний криптографический хеш к str. Аргументом является строка соли, которая должна быть длиной два символа, каждый символ находится в диапазоне az, AZ, 0.9,. или же /.
str.delete (other_str, …)
Возвращает копию строки со всеми символами в пересечении удаленных аргументов.
str.delete! (other_str, …)
То же самое, что и удаление, но изменения сделаны на месте.
str.downcase
Возвращает копию строки со всеми заглавными буквами, замененными строчными.
str.downcase!
То же, что и в нижнем регистре, но изменения сделаны на месте.
str.dump
Возвращает версию str, в которой все непечатаемые символы заменены на \ nnn, а все специальные символы экранированы.
str.each (separator = $ /) {| substr |блок}
Разделяет str, используя аргумент в качестве разделителя записей ($ / по умолчанию), передавая каждую подстроку в предоставленный блок.
str.each_byte {| fixnum |блок}
Передает каждый байт от str к блоку, возвращая каждый байт в виде десятичного представления байта.
Разделяет str, используя аргумент в качестве разделителя записей ($ / по умолчанию), передавая каждую подстроку в предоставленный блок.
str.empty?
Возвращает true, если str пуст (имеет нулевую длину).
str.eql? (другое)
Две строки равны, если они имеют одинаковую длину и содержание.
str.gsub (шаблон, замена) [или]
str.gsub (pattern) {| match |блок}
Возвращает копию str со всеми вхождениями шаблона, замененными либо заменой, либо значением блока. Шаблон обычно будет регулярным выражением; если это String, то метасимволы регулярного выражения не будут интерпретироваться (то есть / \ d / будет соответствовать цифре, но \ d будет соответствовать обратной косой черте, за которой следует ‘d’).
Ссылки str, используя следующие аргументы: один Fixnum, возвращает код символа в fixnum; два Fixnum, возвращает подстроку, начиная со смещения (первый fixnum) до длины (второй fixnum); диапазон, возвращает подстроку в диапазоне; регулярное выражение возвращает часть совпавшей строки; регулярное выражение с fixnum, возвращает сопоставленные данные в fixnum; other_str возвращает подстроку, соответствующую other_str. Отрицательный Fixnum начинается в конце строки с -1.
Заменить (назначить) всю или часть строки. Синоним среза!
str.gsub! (шаблон, замена) [или] str.gsub! (шаблон) {| match | block}
Выполняет подстановки String # gsub на месте, возвращая str или nil, если подстановки не выполнялись.
str.hash
Возвращает хеш на основе длины строки и содержимого.
str.hex
Обрабатывает начальные символы из str как строку шестнадцатеричных цифр (с необязательным знаком и необязательным 0x) и возвращает соответствующее число. Ноль возвращается при ошибке.
str.include?other_str [или] str.include?Fixnum
Возвращает true, если str содержит данную строку или символ.
str.index (подстрока [, смещение]) [или]
str.index (fixnum [, offset]) [or]
str.index (регулярное выражение [, смещение])
Возвращает индекс первого вхождения данной подстроки, символа (fixnum) или шаблона (regexp) в строке str. Возвращает ноль, если не найден. Если присутствует второй параметр, он указывает позицию в строке, с которой начинается поиск.
str.insert (index, other_str)
Вставляет other_str перед символом по указанному индексу, изменяя str. Отрицательные индексы отсчитываются от конца строки и вставляются после заданного символа. Намерение состоит в том, чтобы вставить строку так, чтобы она начиналась с заданного индекса.
str.inspect
Возвращает версию для печати str с экранированными специальными символами.
str.intern [or] str.to_sym
Возвращает Символ, соответствующий str, создавая символ, если он не существовал ранее.
str.length
Возвращает длину ул. Сравните размер.
str.ljust (integer, padstr = »)
Если целое число больше, чем длина строки, возвращает новую строку с целым числом длины с выравниванием по левому краю и дополнением padstr; в противном случае возвращает ул.
str.lstrip
Возвращает копию str с удаленными начальными пробелами.
str.lstrip!
Удаляет начальные пробелы из str, возвращая nil, если не было внесено никаких изменений.
str.match (шаблон)
Преобразует шаблон в регулярное выражение (если он еще не был), а затем вызывает его метод сопоставления на str.
str.oct
Обрабатывает первые символы строки как строку восьмеричных цифр (с необязательным знаком) и возвращает соответствующее число. Возвращает 0, если преобразование не удалось.
str.replace (other_str)
Заменяет содержимое и зараженность str соответствующими значениями в other_str.
str.reverse
Возвращает новую строку с символами из str в обратном порядке.
str.reverse!
Реверс на ул.
str.rindex (подстрока [, fixnum]) [или]
str.rindex (fixnum [, fixnum]) [или]
str.rindex (regexp [, fixnum])
Возвращает индекс последнего вхождения данной подстроки, символа (fixnum) или шаблона (regexp) в str. Возвращает ноль, если не найден. Если присутствует второй параметр, он указывает позицию в строке для завершения поиска. Символы, выходящие за пределы этой точки, рассматриваться не будут.
str.rjust (integer, padstr = »)
Если целое число больше, чем длина строки, возвращает новую строку с целым числом длины с выравниванием по правому краю строки с дополнением padstr; в противном случае возвращает ул.
str.rstrip
Возвращает копию str с удаленными конечными пробелами.
str.rstrip!
Удаляет завершающие пробелы из str, возвращая ноль, если не было внесено никаких изменений.
str.scan (шаблон) [или]
str.scan (pattern) {| match, … |блок}
Обе формы перебирают str, совпадая с шаблоном (который может быть регулярным выражением или строкой). Для каждого совпадения результат генерируется и либо добавляется в массив результатов, либо передается в блок. Если шаблон не содержит групп, каждый отдельный результат состоит из совпавшей строки, $ &. Если шаблон содержит группы, каждый отдельный результат сам является массивом, содержащим одну запись на группу.
Удаляет указанную часть из str и возвращает удаленную часть. Формы, которые принимают Fixnum, вызовут IndexError, если значение выходит за пределы диапазона; форма Range вызовет RangeError, а формы Regexp и String будут молча игнорировать назначение.
str.split (pattern = $, [limit])
Делит str на подстроки на основе разделителя, возвращая массив этих подстрок.
Если pattern является String, то его содержимое используется в качестве разделителя при разбиении str. Если шаблон представляет собой один пробел, str разделяется на пробельные символы, причем начальные пробельные символы и серии непрерывных пробельных символов игнорируются.
Если pattern является регулярным выражением, str делится там, где образец совпадает. Всякий раз, когда шаблон соответствует строке нулевой длины, строка разбивается на отдельные символы.
Если шаблон опущен, значение $; используется. Если $; равен nil (это значение по умолчанию), str разделяется на пробелы, как если бы « были указаны.
Если параметр limit пропущен, завершающие нулевые поля подавляются. Если limit — положительное число, будет возвращено не более того количества полей (если limit — 1, вся строка возвращается как единственная запись в массиве). При отрицательном значении число возвращаемых полей не ограничено, а завершающие нулевые поля не подавляются.
str.squeeze ([other_str] *)
Создает набор символов из параметра (ов) other_str, используя процедуру, описанную для String # count. Возвращает новую строку, в которой серии одного и того же символа, встречающиеся в этом наборе, заменяются одним символом. Если аргументы не указаны, все серии идентичных символов заменяются одним символом.
str.squeeze! ([other_str] *)
Сжимает str на месте, возвращая либо str, либо ноль, если не было внесено никаких изменений.
str.strip
Возвращает копию str с удаленными начальными и конечными пробелами.
str.strip!
Удаляет начальные и конечные пробелы с ул. Возвращает ноль, если str не был изменен.
str.sub (шаблон, замена) [или]
str.sub (pattern) {| match |блок}
Возвращает копию строки с первым вхождением шаблона, замененным либо заменой, либо значением блока. Шаблон обычно будет регулярным выражением; если это строка, то метасимволы регулярных выражений интерпретироваться не будут.
str.sub! (шаблон, замена) [или]
str.sub! (pattern) {| match |блок}
Выполняет подстановки String # sub на месте, возвращая str или nil, если подстановки не выполнялись.
str.succ [или] str.next
Возвращает преемника на ул.
str.succ![или] str.next!
Эквивалент String # succ, но изменяет получателя на месте.
сумма (n = 16)
Возвращает базовую n-битную контрольную сумму символов в str, где n — необязательный параметр Fixnum, значение по умолчанию равно 16. Результатом является просто сумма двоичного значения каждого символа в str по модулю 2n — 1. Это не особенно хорошая контрольная сумма.
str.swapcase
Возвращает копию строки с заглавными буквенными символами, преобразованными в строчные и строчными.
str.swapcase!
Эквивалентно String # swapcase, но изменяет получателя на месте, возвращая str или nil, если не было внесено никаких изменений.
str.to_f
> Возвращает результат интерпретации начальных символов в str как числа с плавающей запятой. Посторонние символы после конца действительного числа игнорируются. Если в начале строки str нет действительного числа, возвращается 0.0. Этот метод никогда не вызывает исключение.
str.to_i (база = 10)
Возвращает результат интерпретации начальных символов в str как целочисленное основание (основание 2, 8, 10 или 16). Посторонние символы после конца действительного числа игнорируются. Если в начале строки str нет действительного числа, возвращается 0. Этот метод никогда не вызывает исключение.
str.to_s [или] str.to_str
Возвращает получатель.
str.tr (from_str, to_str)
Возвращает копию str с символами в from_str, замененными соответствующими символами в to_str. Если to_str короче, чем from_str, он дополняется последним символом. Обе строки могут использовать нотацию c1.c2 для обозначения диапазонов символов, а from_str может начинаться с ^, который обозначает все символы, кроме перечисленных.
str.tr! (from_str, to_str)
Переводит str на место, используя те же правила, что и String # tr. Возвращает str или nil, если не было внесено никаких изменений.
str.tr_s (from_str, to_str)
Обрабатывает копию str, как описано в разделе String # tr, затем удаляет повторяющиеся символы в регионах, на которые повлиял перевод.
str.tr_s! (from_str, to_str)
Выполняет обработку String # tr_s для str на месте, возвращает str или nil, если не было внесено никаких изменений.
str.unpack (формат)
> Декодирует str (который может содержать двоичные данные) в соответствии со строкой формата, возвращая массив каждого извлеченного значения. Строка формата состоит из последовательности односимвольных директив, обобщенных в Таблице 18. За каждой директивой может следовать число, указывающее количество повторений с этой директивой. Звездочка (*) будет использовать все оставшиеся элементы. Каждая из директив sSiIlL может сопровождаться подчеркиванием (_), чтобы использовать собственный размер базовой платформы для указанного типа; в противном случае он использует независимый от платформы постоянный размер. Пробелы игнорируются в строке формата.
str.upcase
Возвращает копию str, в которой все строчные буквы заменены на прописные. Операция не зависит от локали. Это касается только символов от a до z.
str.upcase!
Изменяет содержимое строки в верхний регистр, возвращая ноль, если не было сделано никаких изменений.
str.upto (other_str) {| s |блок}
Выполняет итерацию последовательных значений, начиная с str и заканчивая включением other_str, передавая каждое значение по очереди в блок. Метод String # succ используется для генерации каждого значения.
Директива по распаковке струн
директива
Возвращает
Описание
строка
С завершающими нулями и удаленными пробелами.
строка
Строка.
В
строка
Извлекает биты из каждого символа (самый старший бит в первую очередь).
б
строка
Извлекает биты из каждого символа (сначала младший значащий бит).
С
Fixnum
Извлекает символ как целое число без знака.
с
Fixnum
Извлекает символ как целое число.
D, D
терка
Обрабатывает sizeof (double) символов как родной double.
Е
терка
Обрабатывает sizeof (double) символов как double в порядке байтов littleendian.
е
терка
Обрабатывает символы sizeof (float) как float в порядке байтов littleendian.
F, F
терка
Обрабатывает sizeof (float) символы как нативные float.
г
терка
Обрабатывает sizeof (double) символов как двойной в сетевом порядке байтов.
г
строка
Обрабатывает символы sizeof (float) как число с плавающей точкой в сетевом порядке байтов.
ЧАС
строка
Извлекает шестнадцатеричные отрывки из каждого символа (самый старший бит сначала)
час
строка
Извлекает шестнадцатеричные отрывки из каждого символа (сначала младший значащий бит).
я
целое число
Обрабатывает sizeof (int) (измененный _) последовательных символов как беззнаковое целое число.
я
целое число
Рассматривает sizeof (int) (измененный _) последовательных символов как целое число со знаком.
L
целое число
Обрабатывает четыре (измененных _) последовательных символа как собственное длинное целое число без знака.
L
целое число
Обрабатывает четыре (измененных _) последовательных символа как собственное длинное целое число со знаком.
M
строка
Цитируется-печати.
м
строка
Кодировка Base64.
N
целое число
Обрабатывает четыре символа как длинную без знака в сетевом порядке байтов.
N
Fixnum
Рассматривает два символа как беззнаковое короткое замыкание в сетевом порядке байтов.
п
строка
Обрабатывает символы sizeof (char *) как указатель и возвращает символы \ emph {len} из указанного местоположения.
п
строка
Обрабатывает символы sizeof (char *) как указатель на строку с нулевым символом в конце.
Q
целое число
Обрабатывает восемь символов как беззнаковое четырехугольное слово (64 бита).
Q
целое число
Воспринимает восемь символов как четверное слово со знаком (64 бита).
S
Fixnum
Обрабатывает два (разные, если _ используются) последовательных символа как беззнаковый шорт в собственном порядке байтов.
s
Fixnum
Обрабатывает два (разные, если _ используются) последовательных символа как подписанное короткое слово в собственном порядке байтов.
U
целое число
UTF-8 символы в виде целых чисел без знака.
U
строка
УУ-кодированию.
В
Fixnum
Обрабатывает четыре символа как длинную без знака в порядке байтов с прямым порядком байтов.
v
Fixnum
Обрабатывает два символа как беззнаковое короткое в порядке байтов с прямым порядком байтов.
вес
целое число
BER-сжатое целое число.
Икс
Пропускает назад на один символ
Икс
Пропуск вперед на один символ
Z
строка
С завершающими нулями, удаленными до первого нуля с *.
@
Переходит к смещению, заданному аргументом длины.
пример
Попробуйте следующий пример, чтобы распаковать различные данные.