豊福です。 青山さん > bar.sort!{|a,b| (a.to_i <=> b.to_i).nonzero? || a.to_s <=> b.to_s } ... > bar.filter{|i| [i.to_i, i.to_s, i] }.sort!.filter{|i| i.pop } 中途半端な方法思いつきました。 bar.filter{|i| [i, nil, nil] }.sort!{|a,b| ((a[1] || (a[1] = a[0].to_i)) <=> (b[1] || (b[1] = b[0].to_i))).nonzero? || ((a[2] || (a[2] = a[0].to_s)) <=> (b[2] || (b[2] = b[0].to_s))) }.filter{|i| i[0] } 速さも中途半端だと思います。 --- 豊福 toyofuku / juice.or.jp