java - 将属性分配给文本文件中的字符串
问题描述
希望我的解释能给我一些公正。我对java很陌生。我有一个看起来像这样的文本文件
Java
The Java Tutorials
http://docs.oracle.com/javase/tutorial/
Python
Tutorialspoint Java tutorials
http://www.tutorialspoint.com/python/
Perl
Tutorialspoint Perl tutorials
http://www.tutorialspoint.com/perl/
我有语言名称、网站描述和网站 url 的属性。现在,我只想准确地列出文本文件中的信息,但我需要将这些属性分配给它们。
我遇到的问题是“索引 1 超出长度 1 的范围”
try {
BufferedReader in = new BufferedReader(new FileReader("Tutorials.txt"));
while (in.readLine() != null) {
TutorialWebsite tw = new TutorialWebsite();
str = in.readLine();
String[] fields = str.split("\\r?\\n");
tw.setProgramLanguage(fields[0]);
tw.setWebDescription(fields[1]);
tw.setWebURL(fields[2]);
System.out.println(tw);
}
} catch (IOException e) {
e.printStackTrace();
}
我想测试一些东西,所以我删除了新行并用逗号代替,并将它的 str.split(",") 打印出来就好了,但我确定我会得到分数,我改变了格式。
解决方案
readline
返回一个“包含行内容的字符串,不包括任何行终止字符”,那么你为什么要在 上分割每一行"\\r?\\n"
?
在哪里str
声明?你为什么要为循环的每次迭代读取两行,而忽略第一行?
我建议你从
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
并从那里工作。
第一个readline
获取语言,第二个获取描述,第三个获取 url,然后模式重复。对于 while 循环的每次迭代,没有什么可以阻止您使用readline
3 次。