您的位置:首页 > 其它

#简单实现数字转换为汉字项目 (留给自己用的)

2017-05-28 22:14 225 查看

简单实现数字转换为汉字项目

因为有将数字转换成汉字的需求,就写了个简单的实现案例,考虑到现实生活里很少有十万以上的需求,就将范围写在十万以下。

/**
* 此Demo提供了将数字转化为汉字的方法
* @author Bacchusgift
*
*/
public class NumsToWords {
public static void main(String[] args) {
int a = 10101;
System.out.println(changeNumToString(10101));
}
/*
运行结果:一万零一百零一
*/
/**
* 传入一个五位数,返回中文五位数
* @param i
* @return
*/
public static String motifyNum(int i){
String str = null;
if(i<99999){
str = changeNumToString(i);
}
char[] array = str.toCharArray();
ArrayList<Character>arr = new ArrayList<>();
for (int j = 0; j < array.length; j++) {
arr.add(array[j]);
}
for (int j = 0; j < arr.size(); j++) {
if(arr.get(j)=='零'&&j!=arr.size()-1){
arr.remove(arr.get(j+1));
}
}
for (int j = 0; j < arr.size()-1; j++) {
if(arr.get(j)=='零'&&arr.get(j+1)=='零'){
arr.remove(j);
j--;
}
}
if((arr.get(arr.size()-1))=='零'){
arr.remove(arr.size()-1);
}
String str2 = "";
for (Character character : arr) {
str2 += character.charValue();
}
return  str2;
}
/**
* 没有修饰的方法
* @param i 数字
* @return 未尽格式化后的汉字(需要处理封后才可以使用)
*/
private static String changeNumToString(int i){
String nums []= {"零","一","二","三","四","五","六","七","八","九"};
String lagerNum [] ={"","","十","百","千","万","亿"};
/*   此处的specialNum是为了汉语习惯省略一十一、一十二这样的说法。没有使用,故注释掉
String specialNum[] ={"十","十一","十二","十三","十四","十五","十六","十七","十八","十九"};
*/
int length = Integer.toString(i).length();
System.out.println(length);
String s ="";
if(length<6){
ArrayList<Integer> indexs = new ArrayList<>();
indexs.add(0);
indexs.add(1);
int temp =1;
for (int index = 1; index < length; index++) {
temp *= 10;
indexs.add(temp);
}
System.out.println(indexs);
for (int j = length; j >0; j--) {
s += nums[i/indexs.get(j)%10]+lagerNum[j];
}
}
return s;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐