我有一项家庭作业,您应该能够在其中搜索文本文档(您的电影数据库),例如“ sta”,然后打印其中包含子字符串“ sta”的所有电影。尽管直到数据库中的电影数量超过6部,它都可以正常工作,但它根本不显示任何结果。
带有另一个类的Java文件1
public void sökTitel() {
System.out.print("Ange sökord: ");
String titel = scanner.nextLine().toUpperCase().trim();
Lästitelfrånfil.läsTitel(titel);
}
java文件2
enter code here
package labb5;
import java.io.*;
import java.util.*;
public class Lästitelfrånfil {
public static void läsTitel (String titel) {
File fil =new File("filmdatabas.txt");
Scanner in;
try {
in = new Scanner(fil);
while(in.hasNext()) {
String line = in.nextLine();
if(line.contains (titel))
System.out.println("Titel: " + (line.substring(0, line.length()-1)) +
" Betyg: " + line.substring(line.length()-1, line.length()) + "/5");
}
in.close();
}
catch (FileNotFoundException e) {
}
}
}
文本文件
STAR WARS 1 4
STAR WARS 2 2
STAR WARS 3 4
STAR WARS 4 3
BATMAN THE DARK KNIGHT 5
如果我在文本文件中仅搜索5部电影的“ sta”,结果为:
Ange sökord: sta
Titel: STAR WARS 1 Betyg: 4/5
Titel: STAR WARS 2 Betyg: 2/5
Titel: STAR WARS 3 Betyg: 4/5
Titel: STAR WARS 4 Betyg: 3/5
如果我添加超过7部电影,则结果为:
nothing
答案 0 :(得分:0)
代替
File fil = new File("filmdatabas.txt");
尝试使用FileReader(来自java.io包)
FileReader fil = new FileReader("filmdatabas.txt");
(此外,您可以使用BufferedReader及其readLine()方法-但这只是附加的优化)