如何在Java中将Object []转换为String []?

Que*_*ons 5 java string object

我有一个关于Java的问题.我有Object[](Java默认,不是用户定义的),我想将其转换为String[].谁能帮我?谢谢.

Jig*_*shi 17

这是转换

for(int i = 0 ; i < objectArr.length ; i ++){  
   try {
      strArr[i] = objectArr[i].toString();
   } catch (NullPointerException ex) {
       // do some default initialization
   }
}  
Run Code Online (Sandbox Code Playgroud)

这是铸造

String [] strArr = (String[]) objectArr;  //this will give you class cast exception
Run Code Online (Sandbox Code Playgroud)

更新:

调整1

 String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);
Run Code Online (Sandbox Code Playgroud)

Tweak2

 Arrays.asList(Object_Array).toArray(new String[Object_Array.length]);
Run Code Online (Sandbox Code Playgroud)

注意:仅当对象都是字符串时才有效; 他现在的代码即使不是

forTweak1:仅适用于Java 1.6及更高版本


aio*_*obe 5

简单地像这样进行铸造String[] strings = (String[]) objectArray;可能行不通。

尝试这样的事情:

public static String[] asStrings(Object... objArray) {
    String[] strArray = new String[objArray.length];
    for (int i = 0; i < objArray.length; i++)
        strArray[i] = String.valueOf(objArray[i]);
    return strArray;
}
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样使用该函数

Object[] objs = { "hello world", -1.0, 5 };
String[] strings = asStrings(objs);
Run Code Online (Sandbox Code Playgroud)

或者像这样

String[] strings = asStrings("hello world", -1.0, 5);
Run Code Online (Sandbox Code Playgroud)


Ste*_*aul 5

Java 8解决方案:

String[] strArr = Arrays.stream(objArr).map(Object::toString).toArray(String[]::new);
Run Code Online (Sandbox Code Playgroud)