黑马程序员技术交流社区

标题: 写个题:将字符串中的数字转成中文 [打印本页]

作者: 黎健东    时间: 2012-8-2 16:50
标题: 写个题:将字符串中的数字转成中文
任意定义一个字符串(不一定全是数字),将里边的数字转成中文
如:

String s = "012AA34BB56CC78DD9";

String str = null;
//转换代码......



System.out.println(str);

//输出结果为:零一二AA三四BB五六CC七八DD九


作者: 刘健    时间: 2012-8-2 16:58
提供思路:将字符串转存到数组中,再对数组里的数据进行操作,最后输出
作者: hello world    时间: 2012-8-2 17:22
public class MyTest
{
        public static void main(String[] args)
        {
                String s = "012AA34BB56CC78DD9";
                String result=num2Han(s);
                System.out.println(result);
               
        }
        public static String num2Han(String s)
        {
                char[] ch=s.toCharArray();
                char[] han={'零','一','二','三','四','五','六','七','八','九'};
               
                for(int i=0;i<ch.length;i++)
                {
                        if(ch[i]>='0'&&ch[i]<='9')
                        {
                                int index=ch[i]-48; //提示'0'-48=0;
                                ch[i]=han[index];       
                        }       
                }
               
                return String.valueOf(ch);
        }
}
程序运行结果:
零一二AA三四BB五六CC七八DD九
作者: 黑马黄宏强    时间: 2012-8-2 17:51
查表发就可以实现,例子如下:

public class Test {
public static void main(String[] args) {
  String str = "01GDD2E34A506";
  System.out.println("原来字符:"+str);
  System.out.println("转换后字符为:"+ change(str));
}
//将数字转换成中文的方法
public static String change(String str) {
  // 定义转换表
  char[] arr = { '零', '一', '二', '三', '四', '五', '六', '七', '八', '九' };
  // 将字符串转换成数组
  char[] strArr = str.toCharArray();
  // 遍历数组,如果是数字就查表对换成中文
  for (int i = 0; i < strArr.length; i++) {
   if (Character.isDigit(strArr[i])) {
    strArr[i] = arr[(int) (strArr[i] - '0')];
   }
  }
  return new String(strArr);
}
}

运行结果为:
原来字符:01GDD2E34A506
转换后字符为:零一GDD二E三四A五零六






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