我遇到了一些问题。我有一个* txt文件,我正在阅读该程序(PART A)。这样工作得很好,使用扫描仪在PART B中搜索单词/名称“Winnie-the-Pooh”也是如此。我遇到的问题是C部分,我希望用户为他选择/她自己用哪个词来搜索* txt文件。
无论我正在做什么,扫描仪都会返回4(文本中最后一个单词出现的次数)。
希望你们中的一些人可以帮助我完成第C部分。
下面是代码,它编译得很好。
感谢。
import java.util.Scanner;
import java.io.File;
import java.io.BufferedReader;
import java.io.FileReader;
public class Innlesing {
public static void main(String[] args) throws Exception {
String winnie;
int antall = 0;
int linjeNummer = 1;
String filNavn = "winnie.txt";
Scanner scanFil = new Scanner(new File(filNavn));
// PART A
while (scanFil.hasNextLine()) {
String linje = scanFil.nextLine();
System.out.println("Linje " + linjeNummer + ": " + linje);
linjeNummer++;
}
// PART B
Scanner soekeOrd = new Scanner(new File(filNavn));
while (soekeOrd.hasNextLine()){
winnie = soekeOrd.nextLine();
if (winnie.equals("Winnie-the-Pooh")){
antall += 1;
}
}
System.out.println("Antall forekomster av Winnie-the-Pooh er: " + antall );
// PART C
Scanner brukerInput = new Scanner(System.in);
String brukerInput2;
System.out.println("Hvilket ord vil du soeke paa?: ");
brukerInput2 = brukerInput.nextLine();
while (scanFil.hasNextLine()) {
brukerInput2 = scanFil.nextLine();
if (brukerInput.equals("pluskvamperfektum")) {
antall +=1;
}
}
System.out.println("Antall forekomster av " + brukerInput2 + " er: " + antall );
}
}
答案 0 :(得分:0)
您的代码有几个错误。这是部分C更正。首先,使用brukerInput.equals(“pluskvamperfektum”),您想要检查Scanner实例是否等于String文字。您需要从文件中读取一行,并检查用户键入的字符串是否属于该行 - 例如,它出现在其中的非负索引处。你也忘了重置柜台。现实生活中的一个重要的事情就是在不需要时关闭所有资源 - 这次我已经把它做到了soekeOrd2。
antall = 0;
Scanner soekeOrd2 = new Scanner(new File(filNavn));
Scanner brukerInput = new Scanner(System.in);
String brukerInput2;
System.out.println("Hvilket ord vil du soeke paa?: ");
brukerInput2 = brukerInput.nextLine();
while (soekeOrd2.hasNextLine()) {
String line = soekeOrd2.nextLine();
if (line.indexOf(brukerInput2) >= 0) {
antall +=1;
}
}
System.out.println("Antall forekomster av " + brukerInput2 + " er: " + antall );
soekeOrd2.close()
最好的问候:Balázs