Finding # occurrences of a character in a string in Ruby

RubyStringMethods

Ruby Problem Overview


I'm looking for the Ruby method (1.9...) that can help me find the number of occurrences of a character in a string. I'm looking for all occurrences, not just the first one.

For example: "Melanie is a noob" There are two occurrences of the letter 'a'. What would be the Ruby method I could use in order to find this?

I've been using Ruby-doc.org as a reference and the scan method in the String: class caught my eye. The wording is a bit difficult for me to understand, so I don't really grasp the concept of scan.

Edit: I was able to solve this using scan. I shared in a video how I achieved it.

Ruby Solutions


Solution 1 - Ruby

If you just want the number of a's:

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

Docs for more details.

Solution 2 - Ruby

This link from a question asked previously should help scanning a string in Ruby

scan returns all the occurrences of a string in a string as an array, so

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

will return

["a","a"]

Solution 3 - Ruby

I was able to solve this by passing a string through scan as shown in another answer.

For example:

string = 'This is an example'
puts string.count('e')

Outputs:

2

I was also able to pull the occurrences by using scan and passing a sting through instead of regex which varies slightly from another answer but was helpful in order to avoid regex.

string = 'This is an example'
puts string.scan('e')

Outputs:

['e','e']

I explored these methods further in a small video guide I created after I figured it out.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMelanie ShebelView Question on Stackoverflow
Solution 1 - RubysteenslagView Answer on Stackoverflow
Solution 2 - RubyShivView Answer on Stackoverflow
Solution 3 - RubyMelanie ShebelView Answer on Stackoverflow