2012-10-05 29 views
0

我正在嘗試使用字符串的ArrayList並將其分開,以便我可以從每行中提取標題。在Java中使用Tokenizer與ArrayLists

這裏是ArrayList內容:

湯姆·索亞;吐溫,馬克; 1972年,8.50; F;
草葉; Whitman,Walt; 1975; 29.99; p;
羅密歐與朱麗葉;莎士比亞,威廉; 1980; 4.99; d;
Great Gatsby; Fitzgerald,F. Scott; 1979; 5.99; f;
Scarlet Letter; Hawthorne,Nathaniel; 1981; 4.78; f;
Whisper of the River; Sams,Ferrol; 1984; 21.95; f;
Moby Dick; Melville,Herman; 1962; 13.98; f;
最後的Mohicans; Cooper,James Fenimore; 1968; 8.75; f;
奧德賽;荷馬; 1950; 9.99; f;
聖誕頌歌;狄更斯,查爾斯; 1966; 12.50; f;
Les Miserables; Hugo,Victor; 1988; 19.98; f;
黑暗之心;康拉德,約瑟夫; 1970; 14.45; f;
Animal Farm; Orwell,George; 1978; 10.00; f;
Canterbury Tales; Chaucer,Geoffrey; 1965; 20.00; d;
老人與海;海明威,歐內斯特; 1966; 9.95; f;

我需要做一個方法或東西,獲得排隊的第一部分,直到「;」。

這裏是我使用的除本類似的東西正在讀取數據文件的代碼:

while (datascanner.hasNext()) 
File datafile = new File (data name) 
Scanner datascanner = new Scanner(datafile) 
String data = datascanner.nextLine() 
StringToeknizer dataParser = new StringTokenizer(data, ";") 
String title = dataParser.nextToken() 

我需要類似這樣的東西,而是它搜索的ArrayList,而不是文件。然後,我將提取的其他內容,每行:

String author = dataParser.nextToken() 
int CopyR = dataParser.nextToken() 

等等...

回答

0

通過名單只是想迭代並應用邏輯

for(String line : myArrayList) 
{ 
    StringTokenizer st = new StringTokenizer(line, ";"); 
    String author = st.nextToken(); 
    //etc. 
} 
+0

我得到這些錯誤: Books.java:164:')'expected foreach(String line:books); ^ Books.java:164:表達式的非法開始 foreach(String line:books); ^ Books.java:164:';'預計 foreach(String line:books); – TheNameHobbs

+0

您在該行末尾添加了';',該行不應該在那裏。 –

+0

仍然給我錯誤。奇怪的。 Books.java:164: ')' 預期 的foreach(字符串行:書籍) ^ Books.java:164:表達 的foreach的非法啓動(字串行:書籍) ^ Books.java: 164:';'預計 foreach(String line:books) ^ – TheNameHobbs