Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java编写20-99到单词之间的数字_Java_String - Fatal编程技术网

用java编写20-99到单词之间的数字

用java编写20-99到单词之间的数字,java,string,Java,String,我是一名java初学者,我们被要求创建一个程序,读取20到99之间的整数,并将数字写成单词。如果数字大于99或小于20,程序将报告超出范围的错误。当用户键入-1时,程序停止 到目前为止,我有这个代码,我不确定是否没有什么问题: 导入java.util.Scanner; 公开课问题1{ 公共静态void numberToWordint num,字符串val{ String ON[]= {,一,二,三,四,五,六,七,八,九,十,十一,十二,十三,十四,十四,η,y,y,y }; 字符串十[]={

我是一名java初学者,我们被要求创建一个程序,读取20到99之间的整数,并将数字写成单词。如果数字大于99或小于20,程序将报告超出范围的错误。当用户键入-1时,程序停止

到目前为止,我有这个代码,我不确定是否没有什么问题:

导入java.util.Scanner; 公开课问题1{ 公共静态void numberToWordint num,字符串val{ String ON[]= {,一,二,三,四,五,六,七,八,九,十,十一,十二,十三,十四,十四,η,y,y,y }; 字符串十[]={,二十,三十,四十,五十,六十,七十,八十,九十}; 如果num>19{ System.out.printtens[num/10]++one[num%10]; }否则{ System.out.printones[num]; } 如果num>0{ System.out.printlnval; } } 公共静态无效字符串[]args{ 整数=0; Scanner Scanner=新ScannerSystem.in; System.out.Print请键入一个介于20和99之间的数字,或在结尾处键入-1:; 编号=scanner.nextInt; whilenumber!=-1{
如果number>=20&&number您的代码正常工作,那么word FOURTY中只有一个小的输入错误,应该是四十。我还将从数组1和tens中的字符串中删除不必要的空格。您可以在此处插入一个空格:

System.out.print(tens[num / 10] + " " + ones[num % 10]);
因此,数组中的空格字符是冗余的

String ones[] = {
    "", "ONE", "TWO", "THREE", " FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN",
    "ELEVEN", "TWELVE", " THIRTEEN", "FOURTEEN", "FIFTEEN", "SIXTEEN", "SEVENTEEN", "EIGHTEEN", "NINETEEN"
};
String tens[] = {
    " ", " ", "TWENTY", "THIRTY", "FORTY", "FIFTY", "SIXTY", "SEVENTY", "EIGHTY", "NINETY"
};
编辑:如果我在做作业,我可能会这样写程序:

import java.util.Scanner;

public class Question1 {

    private static String ones[] = {
            "", "ONE", "TWO", "THREE", " FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN",
            "ELEVEN", "TWELVE", " THIRTEEN", "FOURTEEN", "FIFTEEN", "SIXTEEN", "SEVENTEEN", "EIGHTEEN", "NINETEEN"
    };

    private static String tens[] = {
            " ", " ", "TWENTY", "THIRTY", "FORTY", "FIFTY", "SIXTY", "SEVENTY", "EIGHTY", "NINETY"
    };

    public static void numberToWord(int num, String val) {
        if (num > 19)
            System.out.print(tens[num / 10] + " " + ones[num % 10]);
        else
            System.out.print(ones[num]);

        if (num > 0)
            System.out.println(val);
    }

    public static void main(String[] args) {
        int number;
        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.print("\nPlease type a number between 20 and 99 OR type -1 to end: ");
            number = scanner.nextInt();

            if (number == -1)
                break; // Leave the loop

            if (number >= 20 && number <= 99)
                numberToWord(number, " ");
            else
                System.out.print("Out of bounds. Try Again");
        }
    }

}
但是与您的解决方案相比,代码风格只有一些微小的改进


祝您学习Java好运!:

如果它运行时没有错误-您的代码很好。有任何Java错误吗?这与javascript无关。此外,您怎么能不知道是否没有错误?您是否尝试过实际运行代码?