将一个键盘输入的数字转化成中文输出(例如:输入1234567,输出:一百二拾三万四千五百六拾七)?
2018-01-10 21:31
405 查看
public static String getNumberByChinese(String param) { StringBuffer sb = new StringBuffer(); char[] array = param.toCharArray(); int n1 = array.length / 4;// 求除数 int n2 = array.length % 4;// 求余数 String top = ""; if (n1 == 0 && n2 != 0) { top = ""; } if (n1 == 1 && n2 != 0) { top = "万"; } if (n1 == 2 && n2 != 0) { top = "亿"; } for (int i = 0; i < n1; i++) { String result1 = param.substring(i * 4 + n2, i * 4 + n2 + 4); if (i == (n1 - 3)) { sb.append(trasfer4(result1) + "亿"); } if (i == (n1 - 2)) { sb.append(trasfer4(result1) + "万"); } if (i == (n1 - 1)) { sb.append(trasfer4(result1) + ""); } } if (n2 != 0) { sb = new StringBuffer(trasfer4(param.substring(0, n2)) + top + sb.toString()); } return sb.toString(); } public static String trasfer4(String result1) { StringBuffer sb = new StringBuffer(); result1 = result1.replaceAll("1", "一").replaceAll("2", "二").replaceAll("3", "三").replaceAll("4", "四") .replaceAll("5", "五").replaceAll("6", "六").replaceAll("7", "七").replaceAll("8", "八") .replaceAll("9", "九").replaceAll("0", "零"); char[] array = result1.toCharArray(); Map<Integer, String> map = new HashMap<Integer, String>(); // 获取单位 for (int i = array.length - 1; i >= 0; i--) { if (i == array.length - 1) { map.put(i, ""); } if (i == array.length - 2) { map.put(i, "十"); } if (i == array.length - 3) { map.put(i, "百"); } if (i == array.length - 4) { map.put(i, "千"); } } for (int i = 0; i < array.length; i++) { if (i == 0) { sb.append(array[i]).append(map.get(i)); } if (i == 1) { sb.append(array[i]).append(map.get(i)); } if (i == 2) { sb.append(array[i]).append(map.get(i)); } if (i == 3) { sb.append(array[i]).append(map.get(i)); } } return sb.toString(); }
相关文章推荐
- 将一个键盘输入的数字转化成中文输出。(例如:输入:1234567 输出:一百二拾三万四千五百六拾七)
- java实现将一个键盘输入的阿拉伯数字转化成中文输出
- 将一个键盘输入的数字转化成中文输出
- 编写程序显示由数字组成的平行四边形图案。从键盘输入一个整数(£40),则输出对应的图案。例如输入4,则输出为:
- 从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
- 从键盘接受一个数字,列出该数字的中文表示格式,例如:键盘输入123,打印出一二三;键盘输入3103,打印出三一零三。
- P123.36(请编写一个函数printdate(int year,int month,int day ),将输入的三个数字转化成英语纪年输出。)
- 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在
- java——从键盘上输入一个年份,并输入一个月份(数字),输出该月份有多少天
- 从键盘输入一个正整数,按数字的相反顺序输出
- C语言 键盘输入一个数字,以16进制输出。
- 输入一个表达式,没有括号,数字小于0-9之间,输出计算结果,所有的中间结果化为整形。 例如: 输入:3+8×2/9-2 输出:2
- 输入字符串,内有数字和非字符数组,例如A123x456将其中连续的数字作为一个整数,依次存放到一个数组中,如123放到a[0],456放到a[1],并输出a这些数
- 用C语言实现 s=a+aa+aaa+aaaa+aaaaa. a是一个数字,例如 s = 2+22+222+2222+222,a的个数n由键盘输入
- 输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32, 321},则输出这两个能排成的最小数字32132
- 从键盘上输入三个数,编写一个max函数,可以输出三个数中最大的数字
- 从键盘输入一个带有数字的字符串,将其中所在的数字的位置输出,并把数字串小写字符变大写字符再输出
- 输入一个表达式,没有括号,数字小于0-9之间,输出计算结果,所有的中间结果化为整形。 例如: 输入:3+8×2/9-2 输出:2
- 编写一个Java应用程序。用户从键盘输入一个1—9999之间的数,程序将判断这个数是几位数, 并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同, 例如12121、3
- 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3