注册 登录
编程论坛 JAVA论坛

将字符串的数字转换为大写

卢静 发布于 2015-04-27 14:58, 631 次点击
package lianxi.biancheng.test;

import java.util.Scanner;

public class T5 {
    public void way1(char m) {
        if (m == '1')
            System.out.print("壹");
        else if (m == '2')
            System.out.print("贰");
        else if (m == '3')
            System.out.print("叁");
        else if (m == '4')
            System.out.print("肆");
        else if (m == '5')
            System.out.print("伍");
        else if (m == '6')
            System.out.print("陆");
        else if (m == '7')
            System.out.print("柒");
        else if (m == '8')
            System.out.print("捌");
        else if (m == '9')
            System.out.print("玖");
    }

    public void way2() {
        System.out.print("零");
    }

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print("请输入小于等于7的数:");
        String a = s.nextLine();
        String b = a.trim();
        char[] ch = null;
        ch = b.toCharArray();
        T5 p = new T5();
        if (ch.length == 1) {
            if (ch[0] != '0')
                p.way1(ch[0]);
            else
                p.way2();
        }
        if (ch.length == 2) {
            if (ch[0] != '0') {
                p.way1(ch[0]);
                System.out.print("拾");
                if (ch[1] != '0')
                    p.way1(ch[1]);
            }
        }
        if (ch.length == 3) {
            if (ch[0] != '0') {
                p.way1(ch[0]);
                System.out.print("佰");
                if (ch[1] != '0') {
                    p.way1(ch[1]);
                    System.out.print("拾");
                    if (ch[2] != '0') {
                        p.way1(ch[2]);
                    }
                } else {
                    if (ch[2] != '0') {
                        p.way2();
                        p.way1(ch[2]);
                    }
                }
            }
        }
        if (ch.length == 4) {
            if (ch[0] != '0') {
                p.way1(ch[0]);
                System.out.print("千");
                if (ch[1] != '0') {
                    p.way1(ch[1]);
                    System.out.print("佰");
                    if (ch[2] != '0') {
                        p.way1(ch[2]);
                        System.out.print("拾");
                        if (ch[3] != '0') {
                            p.way1(ch[3]);
                        }
                    } else {
                        if (ch[3] != '0') {
                            p.way2();
                            p.way1(ch[3]);
                        }
                    }
                } else {
                    if (ch[2] != '0') {
                        p.way2();
                        p.way1(ch[2]);
                        System.out.print("拾");
                        if (ch[3] != '0') {
                            p.way1(ch[3]);
                        }
                    } else {
                        if (ch[3] != '0') {
                            p.way2();
                            p.way1(ch[3]);

                        }
                    }
                }
            }
        }
        if (ch.length == 5) {
            if (ch[0] != '0') {
                p.way1(ch[0]);
                System.out.print("万");
                if (ch[1] != '0') {
                    p.way1(ch[1]);
                    System.out.print("千");
                    if (ch[2] != '0') {
                        p.way1(ch[2]);
                        System.out.print("佰");
                        if (ch[3] != '0') {
                            p.way1(ch[3]);
                            System.out.print("拾");
                            if (ch[4] != 0)
                                p.way1(ch[4]);
                        } else {
                            if (ch[4] != '0')
                                p.way2();
                            p.way1(ch[4]);
                        }
                    } else {
                        if (ch[3] != '0') {
                            p.way2();
                            p.way1(ch[3]);
                            System.out.print("拾");
                            if (ch[4] != '0')
                                p.way1(ch[4]);
                        }
                    }
                } else {
                    if (ch[2] != '0') {
                        p.way2();
                        p.way1(ch[2]);
                        System.out.print("佰");
                        if (ch[3] != '0') {
                            p.way1(ch[3]);
                            System.out.print("拾");
                            if (ch[4] != '0') {
                                p.way1(ch[4]);
                            }
                        } else {
                            if (ch[4] != '0')
                                p.way2();
                            p.way1(ch[4]);
                        }

                    } else {
                        if (ch[3] != '0') {
                            p.way2();
                            p.way1(ch[3]);
                            System.out.print("拾");
                            if (ch[4] != '0')
                                p.way1(ch[4]);
                        } else {
                            if (ch[4] != '0')
                                p.way2();
                            p.way1(ch[4]);
                        }
                    }
                }
            }
        }
        if (ch.length == 6) {
            if (ch[0] != '0') {
                p.way1(ch[0]);
                System.out.print("拾");
                if (ch[1] != '0') {
                    p.way1(ch[1]);
                    System.out.print("万");
                    if (ch[2] != '0') {
                        p.way1(ch[2]);
                        System.out.print("千");
                        if (ch[3] != '0') {
                            p.way1(ch[3]);
                            System.out.print("佰");
                            if (ch[4] != '0') {
                                p.way1(ch[4]);
                                System.out.print("拾");
                                if (ch[5] != '0')
                                    p.way1(ch[5]);
                            } else {
                                if (ch[5] != '0') {
                                    p.way2();
                                    p.way1(ch[5]);
                                }
                            }
                        } else {
                            if (ch[4] != '0') {
                                p.way2();
                                p.way1(ch[4]);
                                System.out.print("拾");
                                if (ch[5] != '0')
                                    p.way1(ch[5]);
                            } else {
                                if (ch[5] != '0') {
                                    p.way2();
                                    p.way1(ch[5]);
                                }
                            }
                        }
                    } else {// ,万位不等于0,千位上等于0
                        if (ch[3] != '0') {
                            p.way2();
                            p.way1(ch[3]);
                            System.out.print("佰");
                            if (ch[4] != '0') {
                                p.way1(ch[4]);
                                System.out.print("拾");
                                if (ch[5] != '0') {
                                    p.way1(ch[5]);
                                }
                            } else {
                                if (ch[5] != '0') {
                                    p.way2();
                                    p.way1(ch[5]);
                                }
                            }
                        } else {
                            if (ch[4] != '0') {
                                p.way2();
                                p.way1(ch[4]);
                                System.out.print("拾");
                                if (ch[5] != '0') {
                                    p.way1(ch[5]);
                                }
                            } else {
                                if (ch[5] != '0') {
                                    p.way2();
                                    p.way1(ch[5]);
                                }
                            }
                        }
                    }
                } else {// 万位上为0
                    System.out.print("万");
                    if (ch[2] != '0') {
                        p.way1(ch[2]);
                        System.out.print("千");
                    } else {// 万位千位都为0
                        if (ch[3] != '0') {
                            p.way2();
                            p.way1(ch[3]);
                            System.out.print("佰");
                            if (ch[4] != '0') {
                                p.way1(ch[4]);
                                System.out.print("拾");
                                if (ch[5] != '0') {
                                    p.way1(ch[5]);
                                }
                            } else {
                                if (ch[5] != '0') {
                                    p.way2();
                                    p.way1(ch[5]);
                                }
                            }
                        } else {// 万千百位都为0
                            if (ch[4] != '0') {
                                p.way2();
                                p.way1(ch[4]);
                                System.out.print("拾");
                                if (ch[5] != '0') {
                                    p.way1(ch[5]);
                                }
                            } else {
                                if (ch[5] != '0') {
                                    p.way2();
                                    p.way1(ch[5]);
                                }
                            }
                        }
                    }
                }
            }
        }
        if (ch.length == 7) {
            if (ch[0] != '0') {
                p.way1(ch[0]);
                System.out.print("佰");
                if (ch[1] != '0') {
                    p.way1(ch[1]);
                    System.out.print("拾");
                    if (ch[2] != '0') {
                        p.way1(ch[2]);
                        System.out.print("万");
                        if (ch[3] != '0') {
                            p.way1(ch[3]);
                            System.out.print("千");
                            if (ch[4] != '0') {
                                p.way1(ch[4]);
                                System.out.print("佰");
                                if (ch[5] != '0') {
                                    p.way1(ch[5]);
                                    System.out.print("拾");
                                    if (ch[6] != '0')
                                        p.way1(ch[6]);
                                } else {
                                    if (ch[6] != '0') {
                                        p.way2();
                                        p.way1(ch[6]);
                                    }
                                }
                            } else {
                                if (ch[5] != '0') {
                                    p.way2();
                                    p.way1(ch[5]);
                                    System.out.print("拾");
                                    if (ch[6] != '0')
                                        p.way1(ch[6]);
                                } else {
                                    if (ch[6] != '0') {
                                        p.way2();
                                        p.way1(ch[6]);
                                    }
                                }
                            }
                        }
                    } else {
                        System.out.print("万");
                        if (ch[3] != '0') {
                            p.way1(ch[3]);
                            System.out.print("千");
                            if (ch[4] != '0') {
                                p.way1(ch[4]);
                                System.out.print("佰");
                                if (ch[5] != '0') {
                                    p.way1(ch[5]);
                                    System.out.print("拾");
                                    if (ch[6] != '0')
                                        p.way1(ch[6]);
                                } else {
                                    if (ch[6] != '0') {
                                        p.way2();
                                        p.way1(ch[6]);
                                    }
                                }
                            } else {
                                if (ch[5] != '0') {
                                    p.way2();
                                    p.way1(ch[5]);
                                    System.out.print("拾");
                                    if (ch[6] != '0')
                                        p.way1(ch[6]);
                                } else {
                                    if (ch[6] != '0') {
                                        p.way2();
                                        p.way1(ch[6]);
                                    }
                                }
                            }
                        }
                    }
                } else {
                    if (ch[2] != '0') {
                        p.way2();
                        p.way1(ch[2]);
                        System.out.print("万");
                        if (ch[3] != '0') {
                            p.way1(ch[3]);
                            System.out.print("千");
                            if (ch[4] != '0') {
                                p.way1(ch[4]);
                                System.out.print("佰");
                                if (ch[5] != '0') {
                                    p.way1(ch[5]);
                                    System.out.print("拾");
                                    if (ch[6] != '0')
                                        p.way1(ch[6]);
                                } else {
                                    if (ch[6] != '0') {
                                        p.way2();
                                        p.way1(ch[6]);
                                    }
                                }
                            } else {
                                if (ch[5] != '0') {
                                    p.way2();
                                    p.way1(ch[5]);
                                    System.out.print("拾");
                                    if (ch[6] != '0')
                                        p.way1(ch[6]);
                                } else {
                                    if (ch[6] != '0') {
                                        p.way2();
                                        p.way1(ch[6]);
                                    }
                                }
                            }
                        }

                    } else {
                        if (ch[3] != '0') {
                            System.out.print("万");
                            if (ch[3] != '0') {
                                p.way1(ch[3]);
                                System.out.print("千");
                                if (ch[4] != '0') {
                                    p.way1(ch[4]);
                                    System.out.print("佰");
                                    if (ch[5] != '0') {
                                        p.way1(ch[5]);
                                        System.out.print("拾");
                                        if (ch[6] != '0')
                                            p.way1(ch[6]);
                                    } else {
                                        if (ch[6] != '0') {
                                            p.way2();
                                            p.way1(ch[6]);
                                        }
                                    }
                                } else {
                                    if (ch[5] != '0') {
                                        p.way2();
                                        p.way1(ch[5]);
                                        System.out.print("拾");
                                        if (ch[6] != '0')
                                            p.way1(ch[6]);
                                    } else {
                                        if (ch[6] != '0') {
                                            p.way2();
                                            p.way1(ch[6]);
                                        }
                                    }
                                }
                            }
                        } else {
                            if (ch[4] != '0') {
                                System.out.print("万");
                                p.way2();
                                p.way1(ch[4]);
                                System.out.print("佰");
                                if (ch[5] != '0') {
                                    p.way1(ch[5]);
                                    System.out.print("拾");
                                    if (ch[6] != '0')
                                        p.way1(ch[6]);
                                } else {
                                    if (ch[6] != '0') {
                                        p.way2();
                                        p.way1(ch[6]);
                                    }
                                }
                            } else {
                                if (ch[5] != '0') {
                                    System.out.print("万");
                                    p.way2();
                                    p.way1(ch[5]);
                                    System.out.print("拾");
                                    if (ch[6] != '0')
                                        p.way1(ch[6]);
                                } else {
                                    if (ch[6] != '0') {
                                        System.out.print("万");
                                        p.way2();
                                        p.way1(ch[6]);
                                    } else
                                        System.out.print("万");
                                }
                            }
                        }
                    }
                }
            }

        }

    }
}
2 回复
#2
hhwz2015-04-27 15:32
你这方法 太。。。。。。
应该把每个共用的提取出来 创建一个方法
#3
凌风zx2015-05-04 09:47
做的不错
我觉得那些大写数和单位用数组存一下会更方便
程序=数据结构+算法
好的算法需要好的数据结构去支持
1