Два поля в объекте Typescript от строки до плавающей

public class NumberConverter {

    private String[] singleDigit = {"", " one", " two", " three",
    " four", " five"," six", " seven", " eight", " nine"};

    private String[] tens = {" ten", " eleven", " twelve", " thirteen",
            " fourteen", " fifteen"," sixteen", " seventeen", " eighteen", " nineteen"};

    private String[] twoDigits = {"", "", " twenty", " thirty",
            " forty", " fifty"," sixty", " seventy", " eighty", " ninety"};

    public String convertToWords(String input) {
        long number = Long.parseLong(input);
        int size = input.length();
        if (size <= 3) {
            int num = (int) number;
            return handle3Digits(num);
        } else if (size > 3 && size <= 6) {
            int thousand = (int)(number/1000);
            int hundred = (int) (number % 1000);
            String thousands = handle3Digits(thousand);

            String hundreds = handle3Digits(hundred);
            String word = "";

            if (!thousands.isEmpty()) {
                word = thousands +" thousand";
            }
            word += hundreds;
            return word;
        } else if (size > 6 && size <= 9) {
            int million = (int) (number/ 1000000);
            number = number % 1000000;
            int thousand = (int)(number/1000);
            int hundred = (int) (number % 1000);

            String millions = handle3Digits(million);
            String thousands = handle3Digits(thousand);
            String hundreds = handle3Digits(hundred);

            String word = "";

            if (!millions.isEmpty()) {
                word = millions +" million";
            }
            if (!thousands.isEmpty()) {
                word += thousands +" thousand";
            }
            word += hundreds;
            return word;
        }

        return "Not implemented yet.";
    }


    private String handle3Digits(int number) {
        if (number <= 0)
            return "";

        String word = "";
        if (number/100 > 0) {
            int dividend = number/100;
            word = singleDigit[dividend] + " hundred";
            number = number % 100;
        }
        if (number/10 > 1) {
            int dividend = number/10;
            number = number % 10;
            word += twoDigits[dividend];
        } else if (number/10 == 1) {
            number = number % 10;
            word += tens[number];
            return word;
        } else {
            number = number % 10;
        }
        if (number > 0) {
            word += singleDigit[number];
        }

        return word;
    }
}
0
задан Bernardao 1 March 2019 в 03:36
поделиться