Я ищу метод Ruby (1.9 ...), который может помочь мне найти количество вхождений символа в строку. Я ищу все вхождения, а не только первое.
Например: «Мелани - нуб». Буква «а» встречается дважды. Какой метод Ruby я мог бы использовать, чтобы найти это?
Я использовал Ruby-doc.org в качестве справочника, и этот scan
метод String: class
привлек мое внимание. Формулировку мне немного сложно понять, поэтому я не совсем понимаю концепцию scan
.
Изменить: я смог решить эту проблему, используя scan
. Я поделился в видео, как мне это удалось.
Ответы:
Если вам просто нужно количество а:
Документы для более подробной информации.
источник
count
считает символы, а не строки. "voyage.localhost.com" .count ('www.') то же самое, что "voyage.localhost.com" .count ('w.'), и поскольку нет w и двух точек, результат равен 2.Эта ссылка из заданного ранее вопроса должна помочь сканировать строку в Ruby.
scan возвращает все вхождения строки в строку как массив, поэтому
вернется
источник
scan
работает и с простыми строками, поэтому такжеscan('a')
можно использоватьЯ смог решить эту проблему, пропустив строку через
scan
как показано в другом ответе.Например:
Выходы:
2
Я также смог вытащить вхождения, используя сканирование и передачу жала вместо регулярного выражения, которое немного отличается от другого ответа, но было полезно, чтобы избежать регулярного выражения.
Выходы:
Я изучил эти методы далее в небольшом видео-руководстве, которое я создал после того, как понял это.
источник