2012-10-05 34 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