str1 = "Строка в двойных кавычках" # Интерполяция и escape-последовательности
str2 = 'Строка в одинарных кавычках' # Без интерполяции
str3 = %q(Простая строка) # Эквивалент одинарных кавычек
str4 = %Q(Строка с интерполяцией #{1+2}) # Эквивалент двойных кавычек
str5 = String.new("Явное создание") # Через конструктор
str6 = <<```HEREDOC # Heredoc с отступом
Многострочная
строка
HEREDOC
"Hello" + " " + "World" # => "Hello World" (конкатенация)
"Ruby" * 3 # => "RubyRubyRuby" (повторение)
"Hello" << " Ruby" # => "Hello Ruby" (модифицирующая конкатенация)
name = "Анна"
"Привет, #{name}!" # => "Привет, Анна!"
str = "Hello Ruby"
str[0] # => "H" (первый символ)
str[-1] # => "y" (последний символ)
str[6..9] # => "Ruby" (подстрока)
str[6, 4] # => "Ruby" (с позиции 6 взять 4 символа)
str.chars # => ["H", "e", "l", "l", "o", " ", "R", "u", "b", "y"]
str = "Ruby is awesome"
str.include?("Ruby") # => true
str.index("is") # => 5 (позиция начала)
str.match?(/awe/) # => true (регулярное выражение)
str.start_with?("Ru") # => true
str.end_with?("some") # => true
"Ruby".upcase # => "RUBY"
"RUBY".downcase # => "ruby"
"hello world".capitalize # => "Hello world"
"hello world".titleize # => "Hello World" (из Rails)
"Hello Java".gsub("Java", "Ruby") # => "Hello Ruby"
"aabbcc".tr('abc', 'xyz') # => "xxyyzz" (посимвольная замена)
" Ruby ".strip # => "Ruby"
" Ruby ".lstrip # => "Ruby "
" Ruby ".rstrip # => " Ruby"
"one,two,three".split(',') # => ["one", "two", "three"]
"one two three".split # => ["one", "two", "three"] (по пробелам)
["Ruby", "is", "cool"].join(" ") # => "Ruby is cool"
"123".numeric? # => true (из Rails)
"".empty? # => true
" ".blank? # => true (из Rails)
"Ruby".ascii_only? # => true
str = <<```TEXT
Первая строка
Вторая строка
Третья строка
TEXT
str.lines # => ["Первая строка\n", "Вторая строка\n", "Третья строка"]
str.each_line { |line| puts line.chomp }
"Name: %s, Age: %d" % ["Anna", 28] # => "Name: Anna, Age: 28"
"PI: %.2f" % Math::PI # => "PI: 3.14"
"%-10s" % "Ruby" # => "Ruby " (выравнивание)
require 'cgi'
CGI.escapeHTML("<div>Hello</div>") # => "<div>Hello</div>"
str = "Ruby".freeze
str << " on Rails" # => RuntimeError: can't modify frozen String
"123".to_i # => 123
"12.3".to_f # => 12.3
"hello".to_sym # => :hello
"one,two".split(',') # => ["one", "two"]
str = "Привет"
str.encoding # => #<Encoding:UTF-8>
str.force_encoding('ASCII') # Изменяет кодировку (не преобразует!)
str.encode('Windows-1251') # Конвертация в другую кодировку
"ruby_on_rails".camelize # => "RubyOnRails"
"RubyOnRails".underscore # => "ruby_on_rails"
"hello world".parameterize # => "hello-world"
Резюмируем: Ruby предоставляет богатый набор методов для работы со строками, включая создание, модификацию, поиск, форматирование и преобразование. Понимание этих методов позволяет эффективно манипулировать строковыми данными, писать чистый и выразительный код. Особое внимание стоит уделить вопросам кодировок, безопасности (экранирование) и производительности (использование frozen strings).