2015-02-10 85 views
0

我正在嘗試製作一個程序,該文件從文件中讀取並計算多少個小寫字母,大寫字母,空格字符(製表符,輸入等)以及其他所有內容。計算文本文件中的字符

這是我有的代碼,它顯示了適量的字母,但由於某種原因,「其他」計數器顯示出的方式應該更多。任何人都知道我做錯了什麼?

File file = new File("C:\\Temp\\Test.txt"); 
    Scanner s = new Scanner(file).useDelimiter(""); 

    for (int i = 0; i < file.length(); i++) { 
     char c = s.next().charAt(0); 

     if (Character.isLetter(c)) { 
      if (Character.isLowerCase(c)) { 
       isLower++; 
      } else { 
       isUpper++; 
      } 
     } else if (Character.isSpaceChar(c) || (c == '\n') || (c == '\t')) { 
      isSpace++; 
     } else { 
      isOther++; 
     } 

    } 
+2

對於第二個條件,請注意,有一個'Character.isWhitespace'函數將涵蓋所有這三種情況。 – SirBraneDamuj 2015-02-10 22:59:01

+1

你在計算數字嗎? – 2015-02-10 22:59:03

+1

除了你的問題,你的變量名稱表明'isLower,isUpper,isSpace,isOther'是布爾值。你應該考慮重命名它們。 – 2015-02-10 23:01:32

回答

0

isOther計數器包含\ r一個其他的東西,如UTF8字符乘以2.檢查編碼,並檢查文件格式。

相關問題