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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李征雪 中级黑马   /  2012-4-19 16:38  /  1654 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 char[][] c = {{' ','1','2',' ',},{'1',' ','2',},{' ','1',' ','2',' ','3'}};
  6.                 StringBuffer str = trim(c);
  7.                 String s = str.toString();
  8.                 System.out.println(s);
  9.         }
  10.         public static StringBuffer trim(char[] c)
  11.         {
  12.                 StringBuffer sb = new StringBuffer();
  13.                 for (int x = 0; x < c.length; x++)
  14.                 {
  15.                         if (c[x] != ' ')
  16.                         {
  17.                                 sb.append(c[x]);
  18.                         }
  19.                 }

  20.                 return sb;
  21.         }
  22.         public static StringBuffer trim(char[][] c)
  23.         {
  24.                 StringBuffer[] sb = new StringBuffer[c.length];
  25.                 for (int x = 0; x < c.length; x++)
  26.                 {
  27.                         sb[x] = trim(c[x]);//转为一维数组处理;
  28.                 }
  29.                 StringBuffer s = new StringBuffer();
  30.                 for (int x = 0; x < sb.length; x++)
  31.                 {
  32.                         s.append(sb[x]);
  33.                         if (x != sb.length-1)
  34.                         {
  35.                                 s.append(',');//加个分割符;
  36.                         }
  37.                 }
  38.                 return s;
  39.         }
  40. }
复制代码
这段代码主要是想实现去除多维字符数组中的空格,以字符串输出。
问题:
1、如何能确定一个未知数组的维度?
2、在一个方法的形参中我想处理多种参数,比如我想处理一维数组,又想处理二维数组,除了把形参定义为Object以外,还能不能定义成别的类型?我的意思就是说数组有没有什么父类或超类什么的。
3、这段代码用这种方式如果要处理三维数组或更多维数的数组还需要大量的重载trim函数,这个能不能用递归实现,如果能的话说说实现思想,如果有空的话也可以贴下代码{:soso_e113:}。

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

2 个回复

倒序浏览
本帖最后由 yuanshilieshou 于 2012-4-19 19:38 编辑

{:soso_e101:}
回复 使用道具 举报
规则的数组
import java.lang.reflect.Array;
public class ArrayDemo {
        public static void main(String[] args){
        int[] []a = new int [] []{{1,2},{3,3},{2,3}};
          //String[]a=new String[]{"dfdf"};
                //int[] a=new int []{2,3};
                printWeishu(a);
                }
        
        private static void printWeishu(Object obj){
                int i=0;
                  while (obj != null && obj.getClass().isArray()) {
                          i++;
                  obj = Array.get(obj, 0);
                }        
                  System.out.print("该数组维数是 "+i);
                         }
}
时间紧,可能有误,吃饭了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马