2017-09-25 73 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

第二個while循環將立即返回,因爲reader已經耗盡。

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

您必須先創建一個新的reader