Поиск # вхождений символа в строку в Ruby - PullRequest
97 голосов
/ 23 марта 2011

Я ищу метод Ruby (1.9 ...), который может помочь мне найти количество вхождений символа в строку. Я ищу все случаи, а не только первый.

Например: "Мелани нуб" Есть два вхождения буквы «а». Какой метод Ruby я мог бы использовать, чтобы найти это?

Я использовал Ruby-doc.org в качестве ссылки, и метод scan в String: class привлек меня внимание. Мне трудно понять формулировку, поэтому я не совсем понимаю концепцию scan.

Ответы [ 3 ]

133 голосов
/ 23 марта 2011

Если вам просто нужно количество символов:

puts "Melanie is a noob".count('a')  #=> 2

Документы для более подробной информации.

49 голосов
/ 23 марта 2011

Эта ссылка из ранее заданного вопроса должна помочь сканировать строку в Ruby

scan возвращает все вхождения строки в строку в виде массива, поэтому

"Melanie is a noob".scan(/a/)

вернется

["a","a"]
29 голосов
/ 23 марта 2011

Вы ищете метод String.index():

Возвращает индекс первого вхождения данной подстроки или шаблона (регулярное выражение) в str.Возвращает ноль, если не найден.Если присутствует второй параметр, он указывает позицию в строке для начала поиска.

"hello".index('e')             #=> 1
"hello".index('lo')            #=> 3
"hello".index('a')             #=> nil
"hello".index(?e)              #=> 1
"hello".index(/[aeiou]/, -3)   #=> 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...