2017-09-25 4 views
-1

テキストファイルの平均単語長の検索に問題があります。何らかの理由で私が得ている出力は0です。このプログラムでは、テキストファイル内の単語の総数がわかりますが、平均単語長を見つけるのに問題があります。平均単語長.txt

public class WordCount { 
    public static void main(String[] args) throws FileNotFoundException { 
     while (true) { 
     System.out.println("Enter File name: "); 
     Scanner input=new Scanner (System.in); 
     String fileName= input.nextLine(); 
     FileReader wordReader; 
     File file = new File("text.txt"); 
     try { 
      wordReader=new FileReader(fileName); 
      BufferedReader reader=new BufferedReader(wordReader); 
      String wordCounter; 
      int numberWords=0; 
      double avgWord=0; 
      double chara=0; 


      while((wordCounter=reader.readLine()) !=null) { 
       String []words=wordCounter.split(" "); 

       for(int i=0;i<words.length;i++) 
       { 
        numberWords++; 
       } 
      } 
       while((wordCounter=reader.readLine()) !=null) { 
       String []charWords=wordCounter.split(""); 
       for (int j=0;j<charWords.length;j++) { 
        chara++; 
       } 
       avgWord=chara/numberWords; 


      } 






      System.out.println("Total words: "+ numberWords); 
      System.out.println("Average word length: "+ avgWord); 
      }catch (FileNotFoundException ex) { 
      System.out.println("File not found"); 
      System.out.println("Example of a valid input: /Users/Marcus/Documents/text.txt"); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     } 




    } 
} 
+0

インデントを修正してください。私たちとあなたの両方にとって本当に混乱しています。 Eclipseでは、Ctrl-Shift-F – HyperNeutrino

答えて

2

readerがすでに使い果たされているため、2番目のwhileループはすぐに戻ります。

while((wordCounter=reader.readLine()) !=null) { 

新しいreaderを最初に作成する必要があります。

関連する問題