2013-05-04 6 views
7

Я знаю, что вы можете проверить, является ли строка целым числом, просто делая Integer.parseInt("1234");
Но я хочу, чтобы это связало текстовое число с целым числом.
т.е.Проверьте, является ли строка номером

  • "One" == 1
  • "Два" == 2
  • "Три" == 3
  • "Двадцать" == 20

Есть какую библиотеку я могу использовать для этого, или мне нужно запрограммировать все это вручную?

Причина, по которой я хочу это сделать, заключается в том, что у меня есть приложение для Android с распознаванием речи.
Пользователь может подсчитать. Этот номер отображается на экране.

EDIT
После некоторого экспериментирования, я понял, что класс SpeechRecognizer я использую автоматически разбирает число фактических цифр ...

+0

Чтобы выполнить это, вы можете использовать шаблон перечисления. – BlackVegetable

+3

Просто имейте в виду, что у этого будут СЕРЬЕЗНЫЕ проблемы i18n. – nothrow

+0

Аналогичный вопрос: http://stackoverflow.com/questions/4062022/how-to-convert-words-to-number –

ответ

5

Я не уверен, если есть библиотека для этого, но here является хороший пример.

2

Насколько я знаю, нет библиотеки для этого, но вы можете думать, как это

создать три типа маркеров

а. один, два, три .................... девять

b. одиннадцать - девятнадцать, двадцать, тридцать, ............ девяносто

c. сто, тыс., ........ и более крупные значения

теперь проанализируйте введенную строку и сопоставьте ее с вашими жетонами. Просто для основной идеи вы можете думать, как этот

Шаг 1. Создайте маркера из stirng токенизатора

шага 2. спичечного право наиболее струнных и матч с жетонами

шаг 3. спичечных один по одна строка справа и матч с токенов и Статистика

, например ONE THOUSAND FIVE HUNDRED FIFTY THREE

пусть суммы = 0

первой строка = сумма три так + = 3

второй строка = пятьдесят так сумма + = 50;

третья строка = Сто, поэтому вам нужно умножить четвертую строку со 100 и добавить такую ​​сумму + = f * 100 ..и т. д.

Это всего лишь базовая идея. Таким образом, вы можете реализовать его отлично после правильного планирования.

Смежные вопросы