2016-06-13 5 views
0

です。出力に誤りがあります。単語の数はJavaで

私は2つのテキストファイルを持ち、互いに単語を比較します。

たとえば、

テキストファイル:a b c d e。

bテキストファイル:a a a a。

と私はこの出力を見たいと思います。

出力:5

が、私は、コードを書いたとき、それは作品はありませんでした。

私を助けてください。

私は、java adk 1.8用のコードをeclipses、windows 8.1 64bitを使って書いています。

これは次のコードです。

私のコーディング、このライン をcauseingエラーで
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に属する単語数を出力することをお勧めします。 (例:apple 3 バナナ2)

  • 301.txtはQ &に関する文章で構成されたテキストファイルです。
  • 無yes2500.txtあなたは、あなたのコードのタイプミスを持っている(lastIndexOflastindexOfを交換して、現在、int型ブール値に評価するかの句で表現をするキーワードリスト
+0

を試してみてください、私はあなたのプログラムを得ると思いますが、あなたの質問は何ですか? – Minh

+0

私の質問はこれです。 このコードは、この行のif(str.get(j).lastindexOf(key.get(i)))のエラーを引き起こします。そして、私はこのコードを修正したいと思います。このエラーがなぜ表示されるのかを知りたい –

+0

'a 5'とは何ですか? ** a ** bテキストファイルの総数ですか? –

答えて

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

だから、この

+0

私はこれを試しました。エラーメッセージが表示されます... エラー名は「スタック上の古いメソッド」です。 と[理由]仮想マシンが古いコードを実行しているスタックフレームをすべてコールスタックから削除できませんでした。仮想マシンがデバッガにこれらのフレームの有効なデータを提供していないため、これらの古いフレームにステップインするとターゲット仮想マシンに危険が及ぶ可能性があります。] なぜこれが起こっていますか? –

0

ではありませんすなわち、インデックス)

関連する問題