Próbuję posortować tablicę z mieszanką wartości int i string. Weźmy na przykład:Jak sortować tablicę int i stringów?
a = ["a", "b", 5, "c", 4, "d", "a1", "a12", 3, 13, 2, "13a", "12a"]
Próbowałem:
a.sort do |x, y|
if x.class == y.class
x <=> y
else
x.class.to_s <=> y.class.to_s
end
end
Które zwraca:
[2, 3, 4, 5, 13, "12a", "13a", "a", "a1", "a12", "b", "c", "d"]
Wynikiem czego chcę to:
[2, 3, 4, 5, "12a", 13, "13a", "a", "a1", "a12", "b", "c", "d"]
Czy w łańcuchach może znajdować się więcej niż jedna liczba, np. "" a1b2c3 "'? – Stefan
Co jest poprawne? '[" a1 "," a12 "," a2 "]' lub '[" a1 "," a2 "," a12 "]'? – Stefan
@Stefan Możliwe, że w ciągu znaków znajduje się więcej niż jedna cyfra. Te ostatnie '[" a1 "," a2 "," a12 "]' –