在Java中将List <Object>转换为String []

cal*_*tts 16 java arrays string list

我需要转换List<Object>String[].

我做了:

List<Object> lst ...
String arr = lst.toString();
Run Code Online (Sandbox Code Playgroud)

但我得到了这个字符串:

["...", "...", "..."]
Run Code Online (Sandbox Code Playgroud)

只是一个字符串,但我需要String []

非常感谢.

Dan*_* D. 20

你必须遍历列表并填写你的String[].

String[] array = new String[lst.size()];
int index = 0;
for (Object value : lst) {
  array[index] = (String) value;
  index++;
}
Run Code Online (Sandbox Code Playgroud)

如果列表是String值,那么List就像调用一样简单lst.toArray(new String[0]);

  • 将`array [index] =(String)value`改为`array [index] = String.valueOf(value)`.如果列表包含任何内容,那么答案就会崩溃,但是字符串.也许这就是OP想要的. (5认同)

Ste*_*ers 14

您可以使用toArray()转换为Object数组,然后使用此方法将对象数组转换为字符串数组:

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

  • `List <Object> lst = new ArrayList <Object>(); lst.add(1);`我为这个测试用例得到了ArrayStoreException. (3认同)

sun*_*dar 5

如果我们非常肯定List<Object>会包含集合String,那么可能试试这个.

List<Object> lst = new ArrayList<Object>();
lst.add("sample");
lst.add("simple");
String[] arr = lst.toArray(new String[] {});
System.out.println(Arrays.deepToString(arr));
Run Code Online (Sandbox Code Playgroud)


i_a*_*ero 5

Java 8可以选择使用以下流:

List<Object> lst = new ArrayList<>();
String[] strings = lst.stream().toArray(String[]::new);
Run Code Online (Sandbox Code Playgroud)