Last Updated: November 22, 2023
·
95.34K
· stevennunez

Ruby: Convert a string to an array of characters

"This is the bee's knees".scan /\w/
#=> ["T", "h", "i", "s", "i", "s", "t", "h", "e", "b", "e", "e", "s", "k", "n", "e", "e", "s"]

String's #scan will look for anything matching your pattern and return it in an array.

8 Responses
Add your response

You can also do "test".split("")

over 1 year ago ·

That would include spaces, the scan only returns what matches the regex. Nice find!

over 1 year ago ·

Thank You. I used .scan instead of .split to make a small improvement in this 'Rubymonk module' lesson (second code from the bottom of the page)

https://rubymonk.com/learning/books/1-ruby-primer/chapters/35-modules/lessons/80-modules-as-namespaces#solution4151

over 1 year ago ·

"This is the bee's knees".chars will do the job

over 1 year ago ·

"This is the bee's knees".chars also includes spaces. Using #scan does not include them.

over 1 year ago ·

Thank you this was helpful - I actually needed the spaces so thanks @maycry for the .chars tip

over 1 year ago ·
"This is the bee's knees".chars.to_a
over 1 year ago ·

"This is the bee's knees".tr(" ' ", "").split.join('').split('') # All chars that may need to be removed from string may be placed in 1st parm of #String.tr method

over 1 year ago ·