用java编写20-99到单词之间的数字
我是一名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{用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 }; 字符串十[]={
如果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无关。此外,您怎么能不知道是否没有错误?您是否尝试过实际运行代码?