输入一串数字:如123456,最多9位.转为中文,自己写了一个,觉得很啰嗦的代码.网上看到大神一段代码,搜索出来转中文好像都是这个.然后验证的时候发现只要是:100000,1000000,这样的几十万,几百万的就会显示的不对.求大神修正代码.看看错在哪了.
- package demo;
- import java.util.Scanner;
- public class NumTrans {
- private static Scanner sc ;
-
- private static String input;
-
- private static String units[] = {"","十","百","千","万","十","百","千","亿"};
-
- private static String nums[] = {"零","一","二","三","四","五","六","七","八","九","十"};
-
- private static String result[] ;
-
- public static void input() {
- System.out.println("请输入一串数字:如123456,最多9位");
- sc = new Scanner(System.in);
- input = sc.nextLine();
- }
-
- public static String get(String input) {
- String out = "";
- result = new String[input.length()];
- for(int i=0;i<result.length;i++) {
- result[i] = String.valueOf(input.charAt(i));
- }
- int back = 0;
- for(int i=0;i<result.length;i++) {
- if(!result[i].equals("0")) {
- back = result.length-i-1;
- out += nums[Integer.parseInt(result[i])];
- out += units[back];
- }else {
- if(i==result.length-1) {
-
- }else {
- if(!result[i+1].equals("0")) {
- out += nums[0];
- }
- }
- }
- }
- return out;
- }
-
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- input();
- System.out.println(get(input));
- }
- }
复制代码 |
|