我在 BlueJ 上做这个程序时遇到了困难。这是我的代码:
public class NumberToWords {
public static void main(String[] args) {
System.out.print("Number: ");
int value = In.nextInt();
int onesDigit;
int tensDigit;
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(value != -1)
{
if (value < 20)
{
String result = ones[value];
System.out.println("" + result);
value = In.nextInt();
}
if (value > 20 && value < 100)
{
tensDigit = value/10;
onesDigit = value%10;
System.out.print("" + ones[onesDigit] + " " + tens[tensDigit]);
value = In.nextInt();
}
}
}
}
所以我的问题是,当我执行此操作时,当我输入第一个数字时,屏幕上仅出现一次“数字”一词。例如: 数量:1 => 1 和 2 => 两个 现在我想要“Number: 2”打印出2。有人可以看看我的代码是否有问题吗?谢谢!
最佳答案
以下代码应该可以帮助您获得所需的输出:
public class NumberToWords {
public static void main(String[] args) {
int onesDigit;
int tensDigit;
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" };
System.out.print("Number: ");
int value = In.nextInt();
while(value != -1)
{
if (value < 20)
{
String result = ones[value];
System.out.println("" + result);
System.out.print("Number: ");
value = In.nextInt();
}
if (value > 20 && value < 100)
{
tensDigit = value/10;
onesDigit = value%10;
System.out.print("" + ones[onesDigit] + " " + tens[tensDigit]);
System.out.print("Number: ");
value = In.nextInt();
}
}
}
}
关于java - Java 中的数字到单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43164166/