将string []拆分为ArrayList和返回值

时间:2012-05-21 19:24:02

标签: java string list arraylist

我在将字符串数组拆分为List / ArrayList时遇到问题。我意识到这是基本的东西,但我看了很多例子,我现在已经完全混淆了自己发生了什么(或者没有发生)。

一些代码段:

private String[] stringTempList;
private ArrayList<List<String>> arrayImageList = new ArrayList<List<String>>();

我的列表是从网页上读取的,格式为纯文本格式,如: ['One','Two','Three'等...]

所以,有些线路要删除我想要/不想要的东西(注意 - 我已将这些内容分开来帮助我按照这个过程完成):

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...] 

如果有人能指出我正确的方向,我将不胜感激。我想我在这里混淆了两个不同的想法。

4 个答案:

答案 0 :(得分:2)

我认为您要使用addAll()代替add()

您还需要声明

private List<String> arrayImageList = new ArrayList<String>();

答案 1 :(得分:2)

将arrayImageList更改为字符串列表:

private ArrayList<String> arrayImageList = new ArrayList<String>();

并使用addAll方法添加它们:

arrayImageList.addAll((List<String>) Arrays.asList(stringTempList));

答案 2 :(得分:1)

您想使用addAll,而不是add

答案 3 :(得分:0)

我不确定这是“错误的正确方法”,我对java并不熟悉,但这是我的想法:

您的“arrayImageList”对象是List的ArrayList。当您添加stringTempList-object时,该对象将正确存储在“List-of-lists”的第一个可用索引处。如果要从“arrayImageList”访问各个元素(字符串),则必须按地址添加第二个维度(列表列表):

arrayImageList.get(0).get(i)&lt; - 这里不完全确定java语法,但是你得到了图片。

如果另一方面你不需要额外的维度,只需使用ArrayList而不是og ArrayList&gt;。