Объект String в Ruby содержит и управляет произвольной последовательностью одного или нескольких байтов, обычно представляющих символы, которые представляют человеческий язык.
Простейшие строковые литералы заключены в одинарные кавычки (символ апострофа). Текст в кавычки – это значение строки:
'Это простой строковый литерал Ruby'
Если вам нужно разместить апостроф в строках с одной кавычкой, то перед ним следует обратная косая черта, чтобы интерпретатор Ruby не думал, что он завершает строку:
'Ты будешь читать книгу O\'Reilly\'s?'
Обратная косая черта также работает, чтобы избежать другой обратной косой черты, так что вторая обратная косая черта сама по себе не интерпретируется как escape-символ.
Ниже перечислены связанные с строкой функции Ruby.
Подстановка выражения является средством вложения значения любого выражения Ruby в строку с помощью #{и}:
#!/usr/bin/ruby x, y, z = 12, 36, 72 puts "Значение x равно #{ x }." puts "Сумма x и y = #{ x + y }." puts "Среднее значение #{ (x + y + z)/3 }."
Это приведет к следующему результату:
Значение x равно 12. Сумма x и y равно 48. Среднее значение 40.
С общими строками с разделителями вы можете создавать строки внутри пары совпадений, если произвольные символы разделителя, например: !, (, {, < и т. д., Которым предшествует процентный символ (%). Q, q и x имеют особые значения.
Обозначенные строки могут быть:
%{Ruby это весело.} equivalent to "Ruby это весело." %Q{ Ruby это весело. } equivalent to " Ruby это весело. " %q[Ruby это весело.] эквивалентная строка с одинарными кавычками %x!ls! эквивалент вывода команды Back tick `ls`
Набор символов по умолчанию для Ruby – это ASCII, символы которого могут быть представлены одиночными байтами. Если вы используете UTF-8 или другой современный набор символов, символы могут быть представлены в одном-четырех байтах.
Вы можете изменить свой набор символов, используя $KCODE в начале вашей программы, например:
$KCODE = 'u'
Нам нужно иметь экземпляр объекта String для вызова метода String. Ниже приведен способ создания экземпляра объекта String:
new [String.new(str = "")]
Это вернет новый строковый объект, содержащий копию str. Теперь, используя объект str, мы все можем использовать любые доступные методы экземпляра. Например,
#!/usr/bin/ruby myStr = String.new("ЭТО ТЕСТ") foo = myStr.downcase puts "#{foo}"
Это приведет к следующему результату:
это терс
Попробуйте следующий пример, чтобы распаковать различные данные.
"abc \0\0abc \0\0".unpack('A6Z6') #=> ["abc", "abc "] "abc \0\0".unpack('a3a3') #=> ["abc", " \000\000"] "abc \0abc \0".unpack('Z*Z*') #=> ["abc ", "abc "] "aa".unpack('b8B8') #=> ["10000110", "01100001"] "aaa".unpack('h2H2c') #=> ["16", "61", 97] "\xfe\xff\xfe\xff".unpack('sS') #=> [-2, 65534] "now = 20is".unpack('M*') #=> ["now is"] "whole".unpack('xax2aX2aX1aX2a') #=> ["h", "e", "l", "l", "o"]