如何将元素从Object数组中获取到String数组?

时间:2013-06-12 05:52:20

标签: java android arrays

我在eclips中遇到编码错误类型不匹配,无法将Object转换为String。进入AL的所有数据都是String Type,AL被声明为String 如果我可以让AL去一个更好的String []。 继承我的代码:

Object[] Result;
AL.toArray (Result);
String[] news= new String[Result.length];
for (int i1=0;i1<news.length;i1++){
    news[i1]=Result[i1]; <=====here is where the error shows up

6 个答案:

答案 0 :(得分:1)

改变这个:

 news[i1]=Result[i1];

到此:

 news[i1]=Result[i1].toString();

答案 1 :(得分:1)

尝试输入类型。

news[i1] = (String) Result[i1]; 

但是,在类型转换之前检查Result [i1]的类型可能是个好主意。所以你可以做类似

的事情
if( Result[i1] instanceof String){
 news[i1] = (String) Result[i1];
}

如果您完全确定Result数组中的每个对象都是String类型,为什么不首先使用String []?就个人而言,我不是Object []的忠实粉丝......

答案 2 :(得分:0)

String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);

答案 3 :(得分:0)

您可以提供ArrayList.toArray()方法with an existing array来定义您希望从中获取的数组类型。

所以,你可以这样做:

String[] emptyArray = new String[0];
String[] news = AL.toArray(emptyArray);

答案 4 :(得分:0)

试试这段代码:

public static void main(String[] args)
{
    Object[] Result = {"a1","a2","a3"};

    String[] AL = new String[Result.length];

    for(int a=0; a<Result.length; a++)
    {
        AL[a] = Result[a].toString();
    }

    System.out.println(AL[0]);
    System.out.println(AL[1]);
    System.out.println(AL[2]);
}

答案 5 :(得分:0)

由于AL是您报告的ArrayList<String>,因此您可以在一行代码中执行所需操作:

String[] news = AL.toArray(new String[AL.size()]);