我想知道如何將以下數據拆分爲多個列表。這裏是我的輸入(來自文本文件,此處重新創建示例):將ArrayLists拆分爲多個ArrayLists
aaaa bbbb cccc,ccc,cccc
aaaa-- bbbb
aaaa bbbb cccc-
aaaa bbbb cccc,ccc
aaaa-
aaaa bbbb ccc,cccc,cccc
分隔每段文本都是空白。我需要編寫的代碼應該創建三個列表,由每行文本文件中每個條目的a,b和c組組成,而忽略任何帶有「 - 」的行。因此,如下我3列應填寫:
Array1: aaaa, aaaa, aaaa
Array2: bbbb, bbbb, bbbb
Array3: (cccc,ccc,cccc),(cccc,ccc),(ccc,cccc,cccc)
括號里加入表明,第三陣應包括所有列出的C值 A,B和C都含有從文本文件導入的字符串。這是我的代碼到目前爲止:
import java.util.*;
import java.io.*;
public class SEED{
public static void main (String [] args){
try{
BufferedReader in = new BufferedReader(new FileReader("Curated.txt"));
String temp;
String dash = "-";
int x = 0;
List<String> list = new ArrayList<String>();
List<String> names = new ArrayList<String>();
List<String> syn = new ArrayList<String>();
List<String> id = new ArrayList<String>();
while((temp = in.readLine()) != null){
if(!(temp.contains(dash))){
list.add(temp);
if(temp.contains(" ")){
String [] temp2 = temp.split(" ");
names.add(temp2[0]);
syn.add(temp2[1]);
id.add(temp2[2]);
}else{
System.out.println(temp);
}//Close if
System.out.println(names.get(x));
System.out.println(syn.get(x));
System.out.println(id.get(x));
x++;
}//Close if
}//Close while
}catch (Exception e){
e.printStackTrace();
System.exit(99);
}//Close try
}//Close main
}//Close class
但我的輸出總是:什麼都沒有。我怎樣才能將這些值正確保存到3個獨立的數組或列表中?
好,我會遍歷所有元素我會用一個lo t的if和string的contains()來做到這一點。 – Leo
謝謝桑托斯先生,我能找到以下錯誤: java.lang.IndexOutOfBoundsException:指標:1,尺寸:1 \t在java.util.ArrayList.rangeCheck(ArrayList.java:604) \t在SEED.main(SEED.java:39) – user3781288
處,java.util.ArrayList.get(ArrayList.java:382) \t我不會在你的異常處理中使用System.exit(99) – Leo