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

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

这是转换

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

这是铸造

 String [] strArr = (String[]) objectArr; //this will give you class cast exception 

更新:

调整1

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

Tweak2

  Arrays.asList(Object_Array).toArray(new String[Object_Array.length]); 

注意 :仅当对象都是字符串时才有效; 即使他们不是,他现在的代码也能正常工作

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

简单地像这样生成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; } 

然后你可以像这样使用这个function

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

或者像这样

 String[] strings = asStrings("hello world", -1.0, 5); 

我认为如果objectArr中的所有条目都是String,这是最简单的方法:

 for(int i = 0 ; i < objectArr.length ; i ++){ strArr[i] = (String) objectArr[i]; } 

我想你也可以使用System.arraycopy

 System.arraycopy(objarray, 0, strarray, 0, objarray.length); 

提供, strarray的长度为objarray.length ,objarray只包含字符串。 或者它会抛出ArrayStoreException。 请参阅aioobe的评论。