【发布时间】:2011-03-17 11:15:05
【问题描述】:
我有一个对象数组。每个数组元素的内容可以是字符串,也可以是另一个带有字符串的数组。或者它也可以是包含字符串的数组数组。
例子:
Object obj1 = array[[str1, str2, str3], [str4, str5]]
or: Object obj2 =array [str1, str2]
or: Object obj3 = "this string"
我需要一个将此对象作为参数的方法,如果它是前两种情况之一,则返回包含这些元素的单个数组。如果是最后一种情况,则返回带有作为参数传入的单个字符串元素的数组。
所以,如果我这样做了
getDataForColumn(obj1) i get array: [str1, str2. str3....str5]
getDataForColumn(obj2) i get array: [str1, str2] //same as input, i know
getDataForColumn(obj3) i get array: ["this string"]
我正在尝试,但我真的不知道如何用递归来做到这一点,也不可能,至少以这种方式。
这就是我想出的,然后卡住了。
private static Object[] getDataForColumn(Object column) {
if(column instanceof Object[]){
Object[] castarray = (Object[])column;
Object[]newArray = new Object[castArray.length];
for (int i = 0; i < castarray.length; i++) {
if((castarray[i] instanceof Object[])){
//recursion, but how :D
}
else{
newArray[i] = castArray[i];
}
}
return newArray;
}
return new array with object that came in.....
}
请帮忙。 谢谢
【问题讨论】:
-
这是什么语言,C#?哦等等……instanceof 不是 C# 关键字……也许是 Java?
-
你能添加一个例子吗?我想我不明白你需要做什么。