A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黎健东 中级黑马   /  2012-8-2 16:50  /  1486 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

任意定义一个字符串(不一定全是数字),将里边的数字转成中文
如:

String s = "012AA34BB56CC78DD9";

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



System.out.println(str);

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

评分

参与人数 1黑马币 +15 收起 理由
田建 + 15 淡定

查看全部评分

3 个回复

倒序浏览
提供思路:将字符串转存到数组中,再对数组里的数据进行操作,最后输出
回复 使用道具 举报
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九

评分

参与人数 1技术分 +1 收起 理由
田建 + 1 赞一个!

查看全部评分

回复 使用道具 举报
查表发就可以实现,例子如下:

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五零六

评分

参与人数 1技术分 +1 收起 理由
田建 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马