Dizileri bir ints ve dizeleri karışımıyla sıralamaya çalışıyorum. Örneğin alın:Bir dizi dizi ve dizge nasıl sıralanır?
a = ["a", "b", 5, "c", 4, "d", "a1", "a12", 3, 13, 2, "13a", "12a"]
Denedim:
a.sort do |x, y|
if x.class == y.class
x <=> y
else
x.class.to_s <=> y.class.to_s
end
end
döndürür Hangi:
[2, 3, 4, 5, 13, "12a", "13a", "a", "a1", "a12", "b", "c", "d"]
istediğim sonuçtur:
[2, 3, 4, 5, "12a", 13, "13a", "a", "a1", "a12", "b", "c", "d"]
Dizelerinizde birden fazla numara bulunabilir, örneğin ' "A1b2c3"'? – Stefan
Sorun nedir? [[a1], "a12", "a2"] veya "[" a1 "," a2 "," a12 "]'? – Stefan
@Stefan Dizgideki birden fazla numaraya sahip olabilir. İkincisi, [[a1], "a2", "a12"] ' –