输出错误java中的字数

时间:2016-06-13 04:21:58

标签: java word-count

我想计算匹配和计算单词。

我有两个文本文件,并且可以互相比较单词。

例如,

文本文件:a b c d e。

b文本文件:a a a a a。

我希望看到这个输出。

输出:a.5。

但是当我编写代码时,它没有用。

请帮帮我。

我使用eclipses编写了java adk 1.8的代码,windows 8.1 64bit。

这是此后的代码。

   package test1;

    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.IOException;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;

    public class ex01 {

       public static void main(String[] args) throws IOException {
          // TODO Auto-generated method stub


          FileReader fr = new FileReader("C:/Users/Hong/Desktop/승현연구/152-300/301.txt");
          FileReader key_item = new FileReader("C:/Users/Hong/Desktop/승현연구/no-yes2500.txt");

          BufferedReader br = new BufferedReader(fr);
          BufferedReader br2 = new BufferedReader(key_item);

          FileOutputStream file = new FileOutputStream("C:/Users/Hong/Desktop/승현연구/답변빈도/a301.txt");

          List<String> key = new ArrayList<String>();
          List<String> str = new ArrayList<String>();

          String in = "";
          String s = "";
          String ss[];

          while ((in = br2.readLine()) != null) {
                key.add(in);
          }
          while ((s = br.readLine()) != null) {
                str.add(s);
          }

          ***int cnt = 0;
          int count = 0;
          int cont = 0;
          String txt = "";

          for (int i = 0; i < key.size(); i++) {
             for (int j = 0; j < str.size(); j++) {

                System.out.println(j + " " + str.get(j));

                if (str.get(j).lastindexOf(key.get(i))) {

                  cnt++;
                  //System.out.println(key.get(i) + " " + cnt);
                 }
               if (cnt == 1){
                   //cont ++ 1;
               //System.out.printf("%d",cont);
                }
             }

              System.out.println(key.get(i) + " " + cnt);

                txt = txt + key.get(i) + " " + cnt + "\n";

                cnt = 0;

               }
           file.write(txt.getBytes());

          }***

          //System.out.println("Hello Java");


    }

在我的编码中,导致此行的错误 [if(str.get(j).lastindexOf(key.get(i)))] 我不知道为什么 这是解释文本文件和我想要做的总结

首先,我想看的代码是比较301文本文件和no-yes2500文本文件并输出属于no-yes2500的字数 (例如:苹果3       香蕉2)

  • 301.txt是一个文本文件,由关于Q&amp; A社区答案的句子组成。
  • no-yes2500.txt是关键字列表

2 个答案:

答案 0 :(得分:1)

str.get(j).toString().lastIndexOf(key.get(i).toString())>=0

试试这个

答案 1 :(得分:0)

你的代码中有一个拼写错误,用lastindexOf替换lastIndexOf并将if子句中的表达式计算为布尔值,当前它是一个int(即索引)