【发布时间】:2021-10-21 21:33:09
【问题描述】:
希望我的解释能给我一些公正。我对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(",") 打印出来就好了,但我确定我会得到分数我改变了格式.
【问题讨论】:
-
注意:使用
in.readLine()会读取一行文本,所以当您使用while (in.readLine() != null)时,您实际上是在读取一行,但对它什么也没做……这是预期的行为吗?