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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© haixian 中级黑马   /  2014-4-1 09:59  /  1875 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我需要将 一个object数组转成char数组。该如何去做?

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

2 个回复

倒序浏览
我觉得 一般不要这么做,因为Object是根类,那么Object类型的数组就可以存放任何类型的元素,那么在转换是怎么转成相同的一个类型呢,除非知道这个object数组统一存的是char类型的元素
比如下面这个:
Object[] obj = new Object[]{1,"string",3.14};//存入各种类型的元素
                char[] ch;
                for (int i = 0; i < obj.length; i++) {
                        char[i] = (char)obj[i];//这里转换就会出差错
                }

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
首先要将一个Object数组转换成一个char类型的数组,Object数组中存放的数据必须能够被强制转换成char类型的数据。下面是我的简单实现
  1. public class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 Object[] obj = {'A', 'B', 'C', 'D', 'E'};
  6.                
  7.                 char[] c = convert(obj);
  8.                
  9.                 for(int i = 0; i < c.length; i ++)
  10.                 {
  11.                         System.out.println("c[" + i + "] = " + c[i]);
  12.                 }
  13.         }
  14.        
  15.         /**
  16.          * 将Object类型的数组转换成char类型的数组,并返回转换后的char类型数组
  17.          * @param obj Object类型数组
  18.          * @return 转换后的char类型数组
  19.          */
  20.         public static char[] convert(Object[] obj)
  21.         {
  22.                 if(obj == null) //如果传入的是null则返回null
  23.                 {
  24.                         return null;
  25.                 }
  26.                 char[] c = new char[obj.length]; //先创建一个等长的char类型数组
  27.                
  28.                 //遍历Object数组中的所有元素并转换成char类型,依次存入char数组中
  29.                 for(int i = 0; i < obj.length; i++)
  30.                 {
  31.                         c[i] = (char) obj[i];
  32.                 }
  33.                
  34.                 return c;
  35.         }
  36. }
复制代码

评分

参与人数 1技术分 +2 收起 理由
朱神必 + 2

查看全部评分

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