黑马程序员技术交流社区

标题: 将小写数字转换为大写数字,为什么挂了? [打印本页]

作者: 张振纲    时间: 2012-8-26 17:33
标题: 将小写数字转换为大写数字,为什么挂了?
  1. public class Test10 {
  2.         private static final char[] data = new char[]{
  3.                         '零','壹','贰','叁','肆','伍','陆','柒','捌','玖'
  4.                 };
  5.         private static final char[] units = new char[]{
  6.                 '元','拾','佰','仟','万','拾','佰','仟','亿'
  7.         };
  8.         public static void main(String[] args) {
  9.                 // TODO Auto-generated method stub
  10.                 System.out.println(convert(1080805));
  11.         }

  12.         public static String convert(int money)
  13.         {
  14.                 StringBuffer sbf = new StringBuffer();
  15.                 int unit = 0;
  16.                 for(char i:(money+"").toCharArray()){
  17.                         sbf.append(data[i]);
  18.                 }

  19.                 return sbf.toString();
  20.         }
  21. }
复制代码

作者: 杨震    时间: 2012-8-26 18:43
本帖最后由 杨震 于 2012-8-26 18:47 编辑

public class Test10 {

        private static final char[] data = new char[]{

                        '零','壹','贰','叁','肆','伍','陆','柒','捌','玖'

                };
        private static final char[] units = new char[]{

                '元','拾','佰','仟','万','拾','佰','仟','亿'

        };

        public static void main(String[] args) {

                // TODO Auto-generated method stub

               System.out.println(convert(1080805));

        }


        public static String convert(int money)

        {

                StringBuffer sbf = new StringBuffer();

                int unit = 0;

                for(char i:(money+"").toCharArray()){
                        int index = i - '0';//问题在这里,i是char类型的,比如说i是'2'的话,你将字符'2'作为数组下标,其数字值应该是几十,而实际上这里应该用数字2.
                    sbf.append(data[index]);


                }


                return sbf.toString();

        }

}

作者: 万浩    时间: 2012-8-26 18:46
public class Test10 {

        private static final char[] data = new char[]{

                        '零','壹','贰','叁','肆','伍','陆','柒','捌','玖'

                };

        private static final char[] units = new char[]{

                '元','拾','佰','仟','万','拾','佰','仟','亿'

        };

        public static void main(String[] args) {

                // TODO Auto-generated method stub

                System.out.println(convert(1080805));

        }

        public static String convert(int money)

        {

                StringBuffer sbf = new StringBuffer();

                int unit = 0;
                 
                for(char i:(money+"").toCharArray()){
                                                                 //这里不是直接是用i 因为i是char类型
                        String a = String.valueOf(i);
                        int j = Integer.valueOf(a);
                                                                        //把i转化成int类型的 j后就可以用了
                        sbf.append(data[j]);

                }

                return sbf.toString();

        }

}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2