猿问

如何在Java中将对象数组转换为字符串数组

如何在Java中将对象数组转换为字符串数组

我使用以下代码将Object数组转换为String数组:


Object Object_Array[]=new Object[100];

// ... get values in the Object_Array


String String_Array[]=new String[Object_Array.length];


for (int i=0;i<String_Array.length;i++) String_Array[i]=Object_Array[i].toString();

但我想知道是否有另一种方法可以做到这一点,例如:


String_Array=(String[])Object_Array;

但这会导致运行时错误: Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;


这样做的正确方法是什么?


蝴蝶不菲
浏览 10408回答 3
3回答

明月笑刀无情

另一种选择System.arraycopy:String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);

凤凰求蛊

在Java 8中:String[] strings = Arrays.stream(objects).toArray(String[]::new);要转换其他类型的数组:String[] strings = Arrays.stream(obj).map(Object::toString).&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;toArray(String[]::new);

眼眸繁星

System.arraycopy可能是最有效的方式,但对于美学,我更喜欢:&nbsp;Arrays.asList(Object_Array).toArray(new String[Object_Array.length]);
随时随地看视频慕课网APP
我要回答