我使用以下代码将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;
但是这会导致一个运行时错误:线程"AWT-EventQueue-0"中的异常不能强制转换为[Ljava.lang.String];
正确的做法是什么?
这个很好,但不像mmyers注意到的那样,因为方括号:
Arrays.toString(objectArray).split(“,”)
下面这个很丑,但很管用:
Arrays toString (objectArray)。replaceFirst ("^\\[", "").replaceFirst ("\\]$", ""). (“分裂,”)
如果使用此代码,必须确保对象的toString()返回的字符串不包含逗号。
您可以使用类型转换器。
要将任何类型的数组转换为字符串数组,您可以注册自己的转换器:
TypeConverter.registerConverter(Object[].class, String[].class, new Converter<Object[], String[]>() {
@Override
public String[] convert(Object[] source) {
String[] strings = new String[source.length];
for(int i = 0; i < source.length ; i++) {
strings[i] = source[i].toString();
}
return strings;
}
});
并使用它
Object[] objects = new Object[] {1, 23.43, true, "text", 'c'};
String[] strings = TypeConverter.convert(objects, String[].class);