黑马程序员技术交流社区
标题:
请教问题:关于多维数组的一些问题。
[打印本页]
作者:
李征雪
时间:
2012-4-19 16:38
标题:
请教问题:关于多维数组的一些问题。
class Demo
{
public static void main(String[] args)
{
char[][] c = {{' ','1','2',' ',},{'1',' ','2',},{' ','1',' ','2',' ','3'}};
StringBuffer str = trim(c);
String s = str.toString();
System.out.println(s);
}
public static StringBuffer trim(char[] c)
{
StringBuffer sb = new StringBuffer();
for (int x = 0; x < c.length; x++)
{
if (c[x] != ' ')
{
sb.append(c[x]);
}
}
return sb;
}
public static StringBuffer trim(char[][] c)
{
StringBuffer[] sb = new StringBuffer[c.length];
for (int x = 0; x < c.length; x++)
{
sb[x] = trim(c[x]);//转为一维数组处理;
}
StringBuffer s = new StringBuffer();
for (int x = 0; x < sb.length; x++)
{
s.append(sb[x]);
if (x != sb.length-1)
{
s.append(',');//加个分割符;
}
}
return s;
}
}
复制代码
这段代码主要是想实现去除多维字符数组中的空格,以字符串输出。
问题:
1、如何能确定一个未知数组的维度?
2、在一个方法的形参中我想处理多种参数,比如我想处理一维数组,又想处理二维数组,除了把形参定义为Object以外,还能不能定义成别的类型?我的意思就是说数组有没有什么父类或超类什么的。
3、这段代码用这种方式如果要处理三维数组或更多维数的数组还需要大量的重载trim函数,这个能不能用递归实现,如果能的话说说实现思想,如果有空的话也可以贴下代码{:soso_e113:}。
作者:
邵中国
时间:
2012-4-19 19:31
本帖最后由 yuanshilieshou 于 2012-4-19 19:38 编辑
{:soso_e101:}
作者:
邵中国
时间:
2012-4-19 19:42
规则的数组
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);
}
}
时间紧,可能有误,吃饭了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2