[英]Splitting string[] to ArrayList and Returning Values
我在將字符串數組拆分為List / ArrayList時遇到問題。 我意識到這是基本的東西,但是我看了很多例子,以至於現在我完全困惑正在發生的事情(或未發生的事情)。
一些代碼片段:
private String[] stringTempList;
private ArrayList<List<String>> arrayImageList = new ArrayList<List<String>>();
我的列表是從網頁中讀取的,格式為純文本,例如: ['一個','兩個','三個'等...]
因此,以下幾行代碼可以刪除我想要/不想要的內容(請注意,我將其分離出來以幫助我按照流程進行操作):
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.get(i);
訪問單個元素。
但是,上面的代碼似乎將所有項目添加到arrayImageList的第一個索引中(列表大小始終為1)。 運行一些調試測試,例如Log.d("Test", arrayImageList.get(0));
返回以下內容:
[One,Two,Three,Four, etc...]
如果有人能指出正確的方向,我將不勝感激。 我想我在這里混淆了兩種不同的想法。
我認為您想使用addAll()
而不是add()
您還需要聲明
private List<String> arrayImageList = new ArrayList<String>();
將arrayImageList更改為字符串列表:
private ArrayList<String> arrayImageList = new ArrayList<String>();
並使用addAll方法添加它們:
arrayImageList.addAll((List<String>) Arrays.asList(stringTempList));
您要使用addAll
而不是add
。
我不確定我是否理解了這種“錯誤的正確方法”,並且我對java不太熟悉,但是這是我的想法:
您的“ arrayImageList”對象是List的ArrayList。 當您添加stringTempList-object時,該對象將正確存儲在“ List-of-lists”的第一個可用索引處。 如果要訪問“ arrayImageList”中的各個元素(字符串),則必須這樣處理第二維(列表的列表):
arrayImageList.get(0).get(i) <-此處對java語法並不完全確定,但是您會得到圖片。
另一方面,如果您不需要額外的維度,只需使用ArrayList代替og ArrayList>。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.