S
Sam Kong
Hi,
I'd like to sort an array of strings case-insensitively.
However, if 2 strings are case-insensitively same, I want capital
letters to come first.
a = %w(a c b A C B)
a.sort_by { |i| i.upcase } # => ["a", "A", "b", "B", "c", "C"]
Actually, I want ["A", "a", "B", "b", "C", "c"] .
I can get the result with the following trick.
a.sort_by {|i| i.upcase + i}
But I think there's a more rubyish way.
How do you do that?
Thanks in advance.
Sam
I'd like to sort an array of strings case-insensitively.
However, if 2 strings are case-insensitively same, I want capital
letters to come first.
a = %w(a c b A C B)
a.sort_by { |i| i.upcase } # => ["a", "A", "b", "B", "c", "C"]
Actually, I want ["A", "a", "B", "b", "C", "c"] .
I can get the result with the following trick.
a.sort_by {|i| i.upcase + i}
But I think there's a more rubyish way.
How do you do that?
Thanks in advance.
Sam