Obj-C: преобразовать INT в текст, отформатированный как "шестой" или "двадцать третий"
Я действительно не знаю, как назвать этот формат, может быть, "посчитанный текст" или что-то в этом роде. (Отсутствие хорошего названия также затрудняет поиск ответов, поэтому, если на этот вопрос уже был дан ответ, я прошу прощения за двойной пост.)
Я хочу преобразовать целое число "6" в строку "шестой" или "23" в "двадцать третий". Я нашел ответы на этот вопрос о преобразовании с NSNumberFormatterSpellOutStyle
, но это дает мне "шесть" или "двадцать три". Я полагаю, что мог бы сделать это, а затем написать какую-нибудь сложную вещь, чтобы проверить последние несколько символов строки и добавить "th" или заменить "ree" на "ird", но мне интересно, есть ли более элегантное решение?
Кто-нибудь знает какие-либо встроенные методы для этого или какие-либо примеры кода, которые могут это сделать?
1 ответ
Я думаю, что вы можете думать о порядковых числах. Попробуйте эти библиотеки:
- https://github.com/grgcombs/TTTOrdinalNumberFormatter
- FormatterKit (который включает TTTOrdinalNumberFormatter)
Также сослаться на этот пост SO: Objective-C: отформатировать номера в порядковые номера: 1, 2, 3, .. до 1-го, 2-го, 3-го