6.4 KiB
title | localeTitle |
---|---|
Ruby String Methods | Методы Ruby String |
Методы Ruby String
Ruby имеет много встроенных методов для работы со строками. Строки в Ruby по умолчанию изменяемы и могут быть изменены на месте или новая строка может быть возвращена из метода.
Длина:
- Свойство
.length
возвращает количество символов в строке, включая пробел.ruby "Hello".length #=> 5 "Hello World!".length #=> 12
Empty:
.empty?
метод возвращаетtrue
если длина строки равна нулю.ruby "Hello".empty? #=> false "!".empty? #=> false " ".empty? #=> false "".empty? #=> true
Количество:
- Метод
.count
подсчитывает, сколько раз в строке содержится определенный символ (символы). - Этот метод чувствителен к регистру.
ruby "HELLO".count('L') #=> 2 "HELLO WORLD!".count('LO') #=> 1
Вставка:
- Метод
.insert
вставляет строку в другую строку перед данным индексом.ruby "Hello".insert(3, "hi5") #=> Helhi5lo # "hi5" is inserted into the string right before the second 'l' which is at index 3
Upcase:
- Метод
.upcase
преобразует все буквы в строке в верхний регистр.ruby "Hello".upcase #=> HELLO
Downcase:
- Метод
.downcase
преобразует все буквы в строку в нижний регистр.ruby "Hello".downcase #=> hello
Swapcase
- Метод
.swapcase
преобразует.swapcase
в строке в нижний регистр и строчные буквы в верхний регистр.ruby "hELLO wORLD".swapcase #=> Hello World
прописной:
- Метод
.capitalize
делает первую букву в строке в верхнем регистре, а остальную часть строки строчной.ruby "HELLO".capitalize #=> Hello "HELLO, HOW ARE YOU?".capitalize #=> Hello, how are you?
Обратите внимание, что первая буква только заглавная, если она находится в начале строки. ruby "-HELLO".capitalize #=> -hello "1HELLO".capitalize #=> 1hello
Задний ход:
.reverse
метод отменяет порядок символов в строке.ruby "Hello World!".reverse #=> "!dlroW olleH"
Трещина:
-
.split
берет строки и разбивает их на массив, а затем возвращает массив."Hello, how are you?".split #=> ["Hello,", "how", "are", "you?"]
-
Метод по умолчанию разбивает строку на основе пробелов, если не указан другой разделитель (см. Второй пример).
ruby "Hello".split('-') #=> ["H", "e", "l", "l", "o"]
Чоп:
-
Метод
.chop
удаляет последний символ строки. -
Возвращается новая строка, если вы не используете
.chop!
метод, который мутирует исходную строку."Name".chop #=> Nam
name = "Batman" name.chop name == "Batma" #=> false
name = "Batman" name.chop! name == "Batma" #=> true
Газа:
- Метод
.strip
удаляет ведущие и конечные пробелы в строках, включая табуляции, новые строки и возврат каретки (\t
,\n
,\r
).ruby " Hello ".strip #=> Hello
Chomp:
- Метод
.chomp
удаляет последний символ в строке, только если это возврат каретки или.chomp
строка (\r
,\n
). - Этот метод обычно используется с командой
gets
для удаления возвратов из пользовательского ввода.ruby "hello\r".chomp #=> hello "hello\t".chomp #=> hello\t # because tabs and other whitespace remain intact when using `chomp`
К Integer:
- Метод
.to_i
преобразует строку в целое число.ruby "15".to_i #=> 15 # integer
GSUB:
gsub
заменяет каждую ссылку первого параметра для второго параметра на строку.
"ruby is cool".gsub("cool", "very cool") #=> "ruby is very cool"
gsub
также принимает шаблоны (например, regexp ) в качестве первого параметра, позволяя такие вещи, как:
"ruby is cool".gsub(/[aeiou]/, "*") #=> "r*by *sc**l"
конкатенация:
-
Ruby реализует некоторые методы, чтобы объединить две строки вместе:
-
Метод
+
:"15" + "15" #=> "1515" # string
-
Метод
<<
:"15" << "15" #=> "1515" # string
-
Метод
concat
:ruby "15".concat "15" #=> "1515" # string
Индекс:
-
Метод
index
возвращает позицию индекса первого совпадения соответствия подстроки или шаблона регулярного выражения в строке. -
Если совпадения не найдено, возвращается
nil
. -
Второй необязательный параметр указывает, какая позиция индекса в строке начала поиск совпадения.
"information".index('o') #=> 3 "information".index('mat') #=> 5 "information".index(/[abc]/) #=> 6 "information".index('o', 5) #=> 9 "information".index('z') #=> nil
Очистить:
- Удаляет содержимое строки.
ruby a = "abcde" a.clear #=> ""