Для моего текущего кода я создаю калькулятор слов, где слова вводятся для представления чисел, а вычисления выполняются внутри кода. Требования - ввести в консоль два номера и оператор. Я смог разобрать вход на три части, первое число, оператор и второе число.Изменение слова на цифры Java
Мой вопрос: как я должен обращаться, когда я конвертирую слово в цифровую форму? Например, если пользователь, введенный:
семьсот восемьдесят восемь плюс девяносто-пять
Как я могу превратить это в 788 и 95, так что я могу сделать вычисления в коде? Мой вход должен доходить до 1000.
Это часть моего кода для деления ввода.
import java.util.Scanner;
public class TextCalc2 {
public static void main (String[] args) {
Scanner input = new Scanner(System.in);
String in = input.nextLine();
in = in.toLowerCase();
while (!in.equals("quit")) {
if (in.contains("plus")){
String number1 = in.substring(0, in.indexOf("plus") - 1);
String number2 = in.substring(in.indexOf("plus") + 5, in.length());
String operator = in.substring(in.indexOf("plus"),in.indexOf("plus") + 5);
System.out.println(number1);
System.out.println(operator);
System.out.println(number2);
}
}
У вас должны быть специальные правила для того, что считается приемлемым. Например. «семьдесят один», но вы не принимаете «семьдесят один»? Честно говоря, я бы просто запрограммировал подростков, двадцать, тридцать, четыреста и т. Д., А затем выберет эти слова. Довольно легко определить число до 1000. – Jared
Используйте это aproach: http://stackoverflow.com/questions/3911966/how-to-convert-number-to-words-in-java. Но используйте метод equals для нахождения правильного числа в массиве. – bsferreira
Должно быть «-» между десятками и теми. Я решил еще раз проанализировать цифры, используя number1.contains («сотни»), но я понял, что будет много разных комбинаций, и для создания одного набора потребовалось бы несколько строк. Мне было интересно, есть ли более простой способ сделать это. – LGPiggyDomo