Estou procurando o método Ruby (1.9 ...) que pode me ajudar a encontrar o número de ocorrências de um caractere em uma string. Procuro todas as ocorrências, não apenas a primeira.
Por exemplo: "Melanie é noob" Existem duas ocorrências da letra 'a'. Qual seria o método Ruby que eu poderia usar para encontrar isso?
Tenho usado Ruby-doc.org como referência e o scan
método String: class
chamou minha atenção. A formulação é um pouco difícil para mim entender, então eu realmente não entendo o conceito de scan
.
Edit: Consegui resolver isso usando scan
. Compartilhei em um vídeo como consegui isso.
Respostas:
Se você quiser apenas o número de a's:
Docs para mais detalhes.
fonte
count
conta caracteres, não strings. "voyage.localhost.com" .count ('www.') é o mesmo que "voyage.localhost.com" .count ('w.') e como não há w's e dois pontos, o resultado é 2.Este link de uma pergunta feita anteriormente deve ajudar a escanear uma string em Ruby
scan retorna todas as ocorrências de uma string em uma string como um array, então
retornará
fonte
scan
funciona com Strings simples também, entãoscan('a')
pode ser usado tambémConsegui resolver isso passando uma corda por
scan
conforme mostrado em outra resposta.Por exemplo:
Saídas:
2
Também consegui extrair as ocorrências usando scan e passando um sting em vez de regex, o que varia ligeiramente de outra resposta, mas foi útil para evitar regex.
Saídas:
Eu explorei esses métodos ainda mais em um pequeno guia de vídeo que criei depois que descobri.
fonte