Java 输入数字,并以文字形式显示
数字基本上是以数字格式表示的,或者说是整数值。但是为了发音,我们使用文字。每个数字都有一种独特的文字格式。
例如,数字1的文字格式是“一”。就像数字2的文字格式是“二”,数字3的文字格式是“三”…等等。对于两位数,数字格式有点不同。21表示为“二十一”,45表示为“四十五”…等等。所以对于所有类型的数字,都有一个独特的文字格式可用。
以一些情况为例
实例-1
Input number is 15.
Word format of 15 = Fifteen
实例-2
Input number is 123.
Word format of 123 = One Hundred Twenty-Three
实例-3
Input number is 4532.
Word format of 4532 = Four Thousand Five Hundred Thirty-Two.
步骤
步骤1 - 通过静态输入方法获取输入数字。
步骤2 - 声明一个字符串类型的数组,并将数字存储为字符串。
步骤3 - 然后我们声明一些其他类型的字符串数组,其中我们存储不同类型的数字的单个数字、两位数字、百位数和千位数的文字格式(这里我们只编写代码到四位数,根据需求可以进一步扩展)。
步骤4 - 我们找到给定数字的长度。根据数字的长度,我们有不同的条件来连接数组的索引值。
步骤5 - 完成过程后,我们打印该数字及其文字格式。
方法
我们提供了不同的解决方案。
- 通过静态输入值进行用户定义方法。
让我们逐个查看程序及其输出。
方法 – 通过使用用户定义方法与静态输入值
在这种方法中,我们通过静态输入声明一些随机输入数字,并将这些数字作为参数传递给用户定义的方法,然后在方法内部使用算法,我们可以打印给定数字的文字格式。
示例
public class Main{
public static void main(String args[]) {
digitToWord("1234".toCharArray());
digitToWord("557".toCharArray());
digitToWord("45".toCharArray());
digitToWord("2".toCharArray());
digitToWord("0".toCharArray());
digitToWord("801".toCharArray());
digitToWord("54312".toCharArray());
//passing empty string
digitToWord("".toCharArray());
}
static void digitToWord(char n[]) {
int len = n.length;
if (len == 0) {
System.out.println("Empty string.");
return;
}
if (len > 4) {
System.out.print(String.valueOf(n) + ": ");
System.out.println("The number you have entered has more than four digits.");
return;
}
String[] unitPlaceDig = new String[] {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"};
String[] tensPlaceDig = new String[] {"", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"};
String[] tensMultiplier = new String[] {"", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"};
String[] powOfTens = new String[] {"Hundred", "Thousand"};
System.out.print(String.valueOf(n) + ": ");
if (len == 1){
System.out.println(unitPlaceDig[n[0]-'0']);
return;
}
int p = 0;
while (p < n.length) {
if (len >= 3){
if (n[p] - '0' != 0) {
System.out.print(unitPlaceDig[n[p] - '0'] + " ");
System.out.print(powOfTens[len - 3]+ " ");
}
--len;
}
else {
if (n[p] - '0' == 1) {
int sum = n[p] - '0' + n[p + 1] - '0';
System.out.println(tensPlaceDig[sum]);
return;
}
else if (n[p] - '0' == 2 && n[p + 1] - '0' == 0) {
System.out.println("Twenty");
return;
}
else {
int i = (n[p] - '0');
if (i > 0)
System.out.print(tensMultiplier[i]+ " ");
else
System.out.print("");
++p;
if (n[p] - '0' != 0)
System.out.println(unitPlaceDig[n[p] - '0']);
}
}
++p;
}
}
}
输出
1234: One Thousand Two Hundred Thirty Four
557: Five Hundred Fifty Seven
45: Forty Five
2: Two
0: Zero
801: Eight Hundred One
54312: The number you have entered has more than four digits.
Empty string.
在这篇文章中,我们探讨了如何在Java中接受一个数字输入并以单词形式显示该数字。