How to convert an arrayList.toString() into an actual arraylist

前端 未结 3 1747
无人及你
无人及你 2021-01-20 14:06

In my software, since there is no Array data type in SQLite, I saved my ArrayList as a String. Now I need to use my array

3条回答
  •  鱼传尺愫
    2021-01-20 14:28

    I believe this should work :

    Arrays.asList(newList.substring(1, newList.length() - 1).replaceAll("\\s", "").split(","));
    
    • Take the string, remove the first and last bracket.
    • Remove each spaces.
    • Split by comma as delimiter, collect as list.

    Note that if really you have to do this for a project, then there is something wrong in your code design. However, if this is just for curiosity purpose then this solution would work.


    After testing

    ArrayList list = new ArrayList();
    list.add("name1");
    list.add("name2");
    list.add("name3");
    list.add("name4");
    list.add("name5");
    list.add("name6");
    
    String newList = list.toString();                
    List myList = Arrays.asList(newList.substring(1, newList.length() - 1).replaceAll("\\s", "").split(","));
    
    System.out.println(myList);
    

    would compile properly and print :

    [name1, name2, name3, name4, name5, name6]
    

    Edit

    As per your comments, if really you want your variable to be an ArrayList instance then you could pass the list to ArrayList constructor :

    ArrayList myList = new ArrayList(Arrays.asList(newList.substring(1, newList.length() - 1).replaceAll("\\s", "").split(",")));
    

    You can't cast directly as Arrays.asList use it own builtin java.util.Arrays$ArrayList class.

提交回复
热议问题