用户定义搜索,搜索txt文件

时间:2014-09-22 18:09:02

标签: java input

我遇到了一些问题。我有一个* 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 );
  }
}

1 个答案:

答案 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