需要帮助在Java中将数字转换为word吗
但是,我在用words()转换程序中的数字时遇到了问题。所有的方法都给了我,所以我可以实现;因此,我不能移除任何一个
编号:4564-->;四千五百六十四
这是密码 数字类
package numberstowords;
import java.util.*;
public class Numbers {
//array containing single digits words numbers:0-9
private final String[] SINGLE_DIGITS_WORDS;
//array containing special words words eg:10-19
private final String[] TEEN_DIGITS_WORDS;
//array containing tens words numbers:20-90
private final String[] TEN_DIGITS_WORDS;
private int value, //number to be converted to words
one, //number to store digits
ten, //number to store tens
hundred, //number to store hundred
thousand;//number to store thousand
private String strOut;
//conscructor: Initializing value and arrays
public Numbers(int n)
//getting single digit number
private int getOnes()
{
one = value % 10;
return one;
}
//getting tens numbers
private int getTens()
{
ten = value % 100;
ten /= 10;
return ten;
}
//getting hundreds numbers
private int getHundreds()
{
hundred = value % 1000;
hundred /= 100;
return hundred;
}
//getting thousands numbers
private int getThousands()
{
thousand = value % 10000;
thousand /= 1000;
return thousand;
}
//converting and returning string of ones
private String digitsToString(int one)
{
return SINGLE_DIGITS_WORDS[one];
}
//converting and returning strings of tens and teens
private String tensAndOnesToString(int ten, int one)
{
if(ten == 1)//if number is a teen return, else return tens
{
return TEEN_DIGITS_WORDS[one];
}
return TEN_DIGITS_WORDS[ten-2];
}
//converting and returning strings of hundreds
private String hundredsToString(int hundred)
{
return digitsToString(hundred) + " hundred";
}
private String thousandsToString(int thousand)
{
return digitsToString(thousand) + " thousand";
}
# 1 楼答案
在这段简短的代码中,我使用了递归函数,使其简单且性能良好。 我把给定的数字分成小块数学值。 这种类型的划分是基于数学的,主要由CPU完成,占用的内存量较小
# 2 楼答案
根据您的评论,问题是您得到的是
ones
之间的数字的11-19
输出查看
tensAndOnesToString()
方法,它会检查ten == 1
,以便识别teens
编号。那么,为什么不在if(d4 != 0)
行中添加一个类似的检查呢所以现在,如果它(
d4
)不是0
,并且如果tens
(d3
)不是1
,它将只输出一个one
数字