2012-02-27 41 views
51

Đối với mảng, có một phương pháp khá sort để sắp xếp lại chuỗi các phần tử. Tôi muốn đạt được kết quả tương tự cho một String.Làm cách nào để sắp xếp các ký tự của chuỗi theo thứ tự bảng chữ cái?

Ví dụ: Tôi có một chuỗi str = "String", tôi muốn sắp xếp theo thứ tự bảng chữ cái với một phương pháp đơn giản là "ginrSt".

Có cách nào để bật tính năng này hay tôi nên bao gồm hỗn hợp từ Enumerable?

Trả lời

111

chars method trả về việc đếm các ký tự của chuỗi.

str.chars.sort.join 
#=> "Sginrt" 

Để sắp xếp trường hợp insensitively:

str.chars.sort(&:casecmp).join 
#=> "ginrSt" 
+17

hoặc 'str.chars.sort (&: casecmp) .join' – tokland

13

Ngoài ra (chỉ để cho vui)

str = "String" 
str.chars.sort_by(&:downcase).join 
#=> "ginrSt" 
2
str.unpack("c*").sort.pack("c*") 
+3

thêm một số giải thích cho nó. chính xác thì bạn đang cố nói gì? –

1

Bạn có thể chuyển đổi chuỗi thành một mảng để sắp xếp:

'string'.split('').sort.join 
Các vấn đề liên quan