Как отсортировать символы строки по алфавиту? - PullRequest
54 голосов
/ 27 февраля 2012

Для массива есть красивый sort метод для перестановки последовательности элементов.Я хочу получить те же результаты для строки.

Например, у меня есть строка str = "String", я хочу отсортировать ее в алфавитном порядке одним простым методом до "ginrSt".

Isесть родной способ включить это или я должен включить mixins из Enumerable?

Ответы [ 4 ]

120 голосов
/ 27 февраля 2012

Метод chars возвращает перечисление символов строки.

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

Для сортировки без учета регистра:

str.chars.sort(&:casecmp).join
#=> "ginrSt"
13 голосов
/ 07 марта 2012

Также (просто для удовольствия)

str = "String"
str.chars.sort_by(&:downcase).join
#=> "ginrSt"
2 голосов
/ 15 мая 2013
str.unpack("c*").sort.pack("c*")
1 голос
/ 01 марта 2015

Вы можете преобразовать строку в массив для сортировки:

'string'.split('').sort.join
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...