【发布时间】:2012-05-28 07:28:45
【问题描述】:
我在将字符串数组拆分为 List/ArrayList 时遇到问题。我意识到这是基本的东西,但我看过太多的例子,以至于我现在对正在发生的事情(或没有发生的事情)感到完全困惑。
一些代码sn-ps:
private String[] stringTempList;
private ArrayList<List<String>> arrayImageList = new ArrayList<List<String>>();
我的列表是从网页中读取的,格式为纯文本格式,例如: ['One','Two','Three', etc ...]
所以,有些行可以去掉我想要/不想要的东西(注意 - 我已经将它们分开以帮助我完成整个过程):
stringExtractedList = stringText.substring(stringText.indexOf("['") + 2,
stringText.lastIndexOf("']"));
stringTempList = stringExtractedList.split("','");
据我所知,上述工作按预期工作(创建一个数组 (stringTempList),在它看到 ',' 的地方拆分每个项目。
哪里出错了:
arrayImageList.add((List<String>) Arrays.asList(stringTempList));
我希望这条线能够获取我的数组 (stringTempList) 并将项目移动到 ArrayList 中。我希望使用类似于arrayImageList.get(i); 的代码来访问单个元素。
但是,上面的代码似乎将所有项目添加到 arrayImageList 中的第一个索引(列表大小始终为 1)。运行一些调试测试,例如 Log.d("Test", arrayImageList.get(0)); 返回以下内容:
[One,Two,Three,Four, etc...]
如果有人能指出我正确的方向,我将不胜感激。我想我在这里混淆了两个不同的想法。
【问题讨论】:
-
你检查 split(",") 的确切结果了吗?
-
不熟悉 Java,但
private ArrayList<List<String>> arrayImageList = new ArrayList<List<String>>();创建了一个列表列表。你想要的只是一个列表。所以选择ArrayList或List<String>。此时创建一个新列表是多余的 - 所以直接获取split的结果。或者将其转换为所需的类型(很可能在该步骤中创建副本) -
您想用字符串中的已解析元素创建列表列表吗? arrayImageList.add((List
) Arrays.asList(stringTempList));不是有效的 java 代码。
标签: java string list arraylist