Есть ли встроенный метод в Ruby для поддержки этого?Как конвертировать 1 в "первый", от 2 до "второй" и т. Д., В Ruby?
ответ
Как насчет Linguistics? Однако он не построен. Если вы хотите, встроенный в систему, вы должны установить его с помощью хешей и т.д .. См here также примеры
Это не ответ на ваш вопрос точно, и он не будет работать в Ruby, но если вы находитесь в Rails , вы можете конвертировать 1
в 1st
, 2
в 2nd
и т. д., используя ordinalize
.
Пример:
1.ordinalize # => "1st"
2.ordinalize # => "2nd"
3.ordinalize # => "3rd"
...
9.ordinalize # => "9th"
...
1000.ordinalize # => "1000th"
И если вы хотите, запятые в больших количествах:
number_with_delimiter(1000, :delimiter => ',') + 1000.ordinal # => "1,000th"
Это работает только в Rails. – Raf
Я хотел метод ordinalize, который имеет "первый, второй, третий", а не «1-й, 2-й, 3-й »- так вот небольшой фрагмент, который работает до 10 (и возвращается к Rails ординализации, если он не может найти его).
class TextOrdinalize
def initialize(value)
@value = value
end
def text_ordinalize
ordinalize_mapping[@value] || @value.ordinalize
end
private
def ordinalize_mapping
[nil, "first", "second", "third", "fourth", "fifth", "sixth", "seventh",
"eighth", "ninth", "tenth" ]
end
end
Вот как это работает:
TextOrdinalize.new(1).text_ordinalize #=> 'first'
TextOrdinalize.new(2).text_ordinalize #=> 'second'
TextOrdinalize.new(0).text_ordinalize #=> '0st'
TextOrdinalize.new(100).text_ordinalize #=> '100th'
Вы можете использовать «нуль» вместо 'nil' в' # ordinalize_mapping' –
Использование гуманизации камень, вероятно, самый простой способ. Но, да, он не встроен, однако он имеет только одну зависимость, поэтому я думаю, что это довольно хороший выбор.
require 'humanize'
2.humanize => "two"
- 1. SSRS Первый, Второй, Третий и т. Д.?
- 2. Форматирование: как конвертировать 1 в «01», от 2 до «02», от 3 до «03» и т. Д.
- 3. Как заменить 1 на первый, 2 на второй, третий на третий и т. Д.
- 4. Как найти первый, второй, третий и т. Д. Номер массива
- 5. Второй инкремент цикла перезаписывает первый и т. Д.
- 6. Regex $ 1, $ 2 и т. Д.
- 7. Первый [понедельник] месяца, второй [четверг] месяца и т. Д. Delphi
- 8. Как конвертировать «понедельник» в целое число 1 и «вторник» на 2 и т. Д. Вплоть до пятницы?
- 9. Использовать $ 2, $ 1 и т. Д. В текстовом файле?
- 10. сортировка столбцов от самых низких до самых высоких (т.е. 1, 2, 3 и т. Д., А не 1, 10, 11 ... 2, 20, 21 ... и т. Д.)
- 11. Как отформатировать 1000000 до 1 000 000 и т. Д.
- 12. Конвертировать UTC в дни, часы и т. Д. В C
- 13. Каковы коды ошибок 404; 1, 404; 2 и т. Д.
- 14. php - Как конвертировать 1 день до секунд
- 15. Как получить функцию для итерации по строке и заменить первый символ строки, второй и т. Д.?
- 16. Отображение мощности (до 2, 3, 4 и т. Д.)?
- 17. .NET преобразовать число в строковое представление (от 1 до одного, от двух до двух и т. Д.)
- 18. Ошибка при преобразовании int 1 в строку 'one', от 2 до 'two' и т. Д. В java
- 19. Python: конвертировать snmp timeticks в секунды/дни и т. Д.
- 20. Как объединить 1, 1,5, 2 и т. Д. Вместо 1, 2 или 1.1, 1.2, 1.3 в R?
- 21. DevExpress WPF от одного до многих ссылок и т. Д. :)
- 22. Конвертировать расстояние от 2 до 1/32 дюйма?
- 23. Значение отображения VBA от строки 1 и т. Д.
- 24. Показать элементы (флажки, радиокнопки и т. Д.) В зависимости от случая (если ... еще ... и т. Д.)
- 25. Angular 2 - Как обращаться с * ngFor, когда вы хотите показывать «1-й», «2-й», «3-й» и т. Д.?
- 26. python csv итерация; печать строк 1 и 2, затем 2 и 3 и т. д.
- 27. Autotools: конвертировать x86_64 в amd64 и т. Д.
- 28. Как создать пульсирующее значение от 0..1..0..1..0 и т. Д. Для заданной продолжительности?
- 29. Как найти наилучшие пути GraphAlgoFactory (первый лучший, второй лучший и т. Д.)
- 30. Рубиновое форматирование для ординалов: '1' как '1', '2' как '2nd' и т. Д.
wow, этот класс был перенесен на php ..? отлично, +1 – dmp
Это хорошо для меня. спасибо – Yen
Я думаю, что «первым» является метод ординат, «1-й» - порядковый метод – rogerdpack