得到" twentyzero" "三十零"打印

时间:2017-04-03 09:46:33

标签: java

我正在尝试打印原始号码的单词。但是当我试图输入20,30,40等时,我很挣扎。但是,输出将是" Tweero"而不是"二十"。我为零做了一个空字符串

String [] zero = {""};

然后在number = 0时发出一个If语句;

if (number == 0){ 
    String result = zero[number];
    System.out.print("");
    number = In.nextInt();
}

但是,这根本不起作用。有没有人对此有任何想法。谢谢!

我的完整代码:

public class NumberToWords {

    public static void main(String[] args) {
        System.out.print("Number: ");
        int number = In.nextInt();
        int onesDigit;
        int tensDigit;
        String[] zero = {""};
        String[] ones = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten",
                "eleven", "tweleve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};

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

        String[] hundreds = {"one hundred", "two hundred", "three hundred", "four hundred", "five hundred",
                "six hundred", "seven hundred", "eight hundred", "nine hundred"};
        while (number != -1) {
            if (number == 0) {
                String result = zero[number];
                System.out.print("");
                number = In.nextInt();

            }
            if (number < 20) {

                String result = ones[number];
                System.out.println("" + result);
                System.out.print("Number: ");
                number = In.nextInt();
            }
            if (number >= 20 && number <= 100) {

                tensDigit = number / 10;
                onesDigit = number % 10;
                System.out.println("" + tens[tensDigit] + "" + ones[onesDigit]);
                System.out.print("Number: ");
                number = In.nextInt();

            }

        }

    }
}

1 个答案:

答案 0 :(得分:1)

我认为可以通过检查number number 20 <= number <= 100 if (number >= 20 && number <= 100) { tensDigit = number / 10; onesDigit = number % 10; if (onesDigit == 0) { System.out.println("" + tens[tensDigit]) } else { System.out.println("" + tens[tensDigit] + "" + ones[onesDigit]); } System.out.print("Number: "); number = In.nextInt(); } 是否可以被10整除来解决这个问题。

(for [s (range 101), l (range (- 101 s)) :let [o (- 100 s l)]
      :when (= 100 (+ (* s 5) (* l 3) (* o 1/3)))]
     [s l o])