2016-12-06 6 views
0

これまでのところ、コード内で多くのことを行っています。テキストファイルの句読点を置き換えましたが、単語の検索方法はわかりません偶数と奇数の長さでそれらのカウントに加算します。だから:このファイルの私のワードカウントは114ワードですが、このプログラムは50の偶数ワードと55の奇数ワードを返します。これは自分のワードカウントが114にならないので、明らかに何か間違っています。テキストファイルから記号を削除して奇数と偶数の単語を計算する

+1

私はあなたがそれぞれの行の後にカウントを表示するには、whileループ内のSystem.out.printlnステートメントを置くべきだと思いがありました。あなたはファイルの内容を投稿しなければならないかもしれません。 – ProgrammersBlock

答えて

1
 BufferedReader file3 = new BufferedReader(new FileReader("sonnet1-b.txt")); 

     int even = 0; 
     int odd = 0; 
     String lines; 
     String processedLine = ""; 

//これは、この変数は将来

 ArrayList<String> words = new ArrayList<>(); 

     while ((lines = file3.readLine()) != null) { 
      processedLine = lines.replaceAll("'", "").replaceAll("[^a-zA-Z]", " ").replaceAll("()+", " "); 

//に大きな目的を持っている場合、私はここに単語を削除し、スペースに分割する分割を変え不明です。元のコードを実行すると、テキスト全体が1行になりました。あなたの元の問題がこの分野にあったかもしれないと思います。あなたは言葉の長さを取得する必要があります。あなたはオリジナルの分割パラメータで、それぞれにスペースを入れるだけです。

  String[] each = processedLine.split(" "); 
      for (String str1 : each) { 

//説明に基づいて、str1の長さを確認する必要があります。

   if (!(str1.length() % 2 == 0)) { 
        odd++; 
       } else { 
        even++; 
       } 
      } 
     }        
     System.out.println("There were " + even + " even words, and " + odd + " odd words"); 

58のでも言葉、そして56の奇数言葉

+1

2番目のテキストの問題点を理解するのは難しいです。私は出力があなたが予想したよりも多くの単語を数えたと思う。問題は、世界の終わりが3語と数えられていることかもしれません。 ( "[a-zA-Z]"、 "").replaceAll( "(" - "、" ") + "、" "); – ProgrammersBlock

関連する問題