How to Capitalize First Letter in an Array of Strings in Ruby?

In Ruby, you can make the first letter of every string in an array of strings uppercase whilst leaving the remaining string unchanged using Array#map, for example, like so:

arr = ["foo Bar", "baz", "qux"]
new_arr = arr.map { | item | item[0].upcase + item[1..-1] }

print new_arr #=> ["Foo Bar", "Baz", "Qux"]

This is different from using String#capitalize method, which capitalizes the first character of a string and makes the remaining string lowercase.

The code above would return a new array. However, if you want to mutate the original array, then you simply need to use Array#map! instead of Array#map. For example:

arr = ["foo Bar", "baz", "qux"]
arr.map! { | item | item[0].upcase + item[1..-1] }

print arr #=> ["Foo Bar", "Baz", "Qux"]

Hope you found this post useful. It was published . Please show your love and support by sharing this post.