Ruby "Undefined method 'sort!"

Trying to sort this string in compiler and it keeps saying "Undefined method ‘sort!’ HELPPPPPPPPPPP

name = “damian”

name.sort! {|a,b| a<=>b}

puts name

In Ruby, there is no sort method for string.

If you had an array of strings, then sort would work. e.g.

names = ["jake", "ben", "alice", "zack", "archie", "charles", "fido"]
puts names # Array will be sorted

If you want to sort a string’s characters, you can break up the string into an array of characters. You can then sort and join to end up with a “sorted” string.

name = "damian"
sorted_name = name.chars.sort.join
puts sorted_name
# Output: "aadimn"

# If you want reverse sorting, you could do
sorted_name = name.chars.sort.reverse.join
# or you could write your own rule,
sorted_name = name.chars.sort {|a, b| b <=> a}.join

If the string has a mix of uppercase and lowercase characters, then depending on how you want the sorting to be done, you can write your own block for sort or use sort_by or do something else. It depends on whether you want the sorting to be case sensitive or case insensitive.