Прописанное число (строка) в целое число с использованием ICU - PullRequest
2 голосов
/ 23 апреля 2019

Мне нужно преобразовать строку в целое число. Например, я хотел бы преобразовать шестое в 6.

Я сделал обратный (6 → шестой), используя библиотеку IBM ICU.

private val String.spellout: String
  get() {
    val esFormatter = RuleBasedNumberFormat(Locale.ENGLISH, RuleBasedNumberFormat.SPELLOUT)
    return esFormatter.format(this.toDouble(), "%spellout-ordinal")
  }

Я хотел бы создать другой метод, который берет эту прописанную строку и преобразует ее в двойное (шестое → 6)

1 Ответ

2 голосов
/ 23 апреля 2019

После получения справки из комментариев, вот мое решение, если кому-то еще это нужно:

private val String.numberFromSpelledOut: Boolean
  get() {
    val esFormatter = RuleBasedNumberFormat(Locale.ENGLISH, RuleBasedNumberFormat.SPELLOUT)
    return try {
      return esFormatter.parse(this)
    } catch (e: ParseException) {
      ""
    }
  }

Это не должно вызывать исключения для неверных прописанных вводов.

...