2015-02-10 87 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.检查编码,并检查文件格式。

相关问题