在我的软件中,由于没有输入Array
数据类型SQLite
,因此我将其另存ArrayList
为String
。现在,我需要使用数组并将其转换回ArrayList。我该怎么做?
这是一个例子:
ArrayList<String> list = new ArrayList<String>();
list.add("name1");
list.add("name2");
list.add("name3");
list.add("name4");
list.add("name5");
list.add("name6");
String newList = list.toString();
System.out.println(newList);
结果: [name1, name2, name3, name4, name5, name6]
那么现在如何将其转换为ArrayList<String>
?
我相信这应该工作:
Arrays.asList(newList.substring(1, newList.length() - 1).replaceAll("\\s", "").split(","));
请注意,如果确实必须为项目执行此操作,则代码设计中有问题。但是,如果这只是出于好奇的目的,则此解决方案将起作用。
经过测试
ArrayList<String> list = new ArrayList<String>();
list.add("name1");
list.add("name2");
list.add("name3");
list.add("name4");
list.add("name5");
list.add("name6");
String newList = list.toString();
List<String> myList = Arrays.asList(newList.substring(1, newList.length() - 1).replaceAll("\\s", "").split(","));
System.out.println(myList);
将正确编译并打印:
[name1, name2, name3, name4, name5, name6]
编辑
根据您的评论,如果确实要让变量成为ArrayList<String>
实例,则可以将列表传递给ArrayList
构造函数:
ArrayList<String> myList = new ArrayList(Arrays.asList(newList.substring(1, newList.length() - 1).replaceAll("\\s", "").split(",")));
您不能直接Arrays.asList
使用自己的内置java.util.Arrays$ArrayList
类进行强制转换。
我尝试了一个可以正常工作的解决方案(见下文),除了在Android 4.4中调用会带来一个名为“从”打开的活动,其中有“最近”、“图像”、“下载”以及几个应用程序可供选择。当我选择图像并尝试解析返回的内容URI(使用下面的代码)时,调用返回null。如果我使用库应用程序选择完全相同的文件,返回文件路径。我只在API级别16和19中测试过这个。一切工作在16预期。至于19去,我必须选择画廊或其他应用
此API调用返回一个可能较大的列表 排序、搜索和访问一个潜在的大型LinkedList将非常缓慢,对我的程序来说是不可接受的。因此,我需要将列表转换为ArrayList,以确保程序的实际效率。但是,由于列表很可能已经是ArrayList,因此不必要地创建列表的新ArrayList副本将效率低下。 考虑到这些约束,我提出了以下方法将列表转换为ArrayList: 我的问题是:这是处理具有未知实现的列
问题内容: 我需要将a转换为an ,但我不知道如何 基本上我想变成一个。 问题答案: 您可以执行以下操作:
问题内容: 我在mySQL 5.1中有一个数据类型的日期列。如何将其转换为DATE? 这是我到目前为止所拥有的- 得到这个 错误-#1064-您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册以获取正确的语法,以在’FROM 7 FOR 4附近使用) 请帮忙。 问题答案: 您可以使用MySQL的功能 尽管我怀疑您使用Unix时间戳会更轻松
问题内容: 有没有一种简单的方法可以避免处理文本编码问题? 问题答案: 您确实无法避免处理文本编码问题,但是Apache Commons中已有一些解决方案: 至: 至: 您只需要选择所需的编码即可。