Ich versuche, ein Array mit einer Mischung aus Ints und Strings zu sortieren. Nehmen Sie zum Beispiel:Wie sortiere ich ein Array von Ints und Strings?
a = ["a", "b", 5, "c", 4, "d", "a1", "a12", 3, 13, 2, "13a", "12a"]
Ich habe versucht:
a.sort do |x, y|
if x.class == y.class
x <=> y
else
x.class.to_s <=> y.class.to_s
end
end
Welche zurück:
[2, 3, 4, 5, 13, "12a", "13a", "a", "a1", "a12", "b", "c", "d"]
Das Resultat, das ich will, ist:
[2, 3, 4, 5, "12a", 13, "13a", "a", "a1", "a12", "b", "c", "d"]
Kann es mehr als eine Zahl in Ihren Strings, z '" a1b2c3 "'? – Stefan
Was ist richtig? '[" a1 "," a12 "," a2 "]' oder '[" a1 "," a2 "," a12 "]'? – Stefan
@Stefan Möglich, mehr als eine Zahl in einer Zeichenfolge zu haben. Letzteres '[" a1 "," a2 "," a12 "]' –