如何在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的评论。