2014-12-02 81 views
-1

這是程序的一部分,它將計算文本文件中每個字母的出現次數。我希望它打印出類似於A:4 B:23 C:32的東西,而是打印出A:0B:0C:0A:0B:0C:0A:0B:0C:0,它甚至不會找到每個出現的所有事件信。我在這裏做錯了什麼?謝謝您的幫助!!Java:計算文本文件中字符的出現次數

   char ch = line.charAt(0); 

       int Acounter=0; 
       int Bcounter=0; 
       int Ccounter=0; 
       switch (ch) 
       { 
        case 'A': 
         Acounter++; 
         break; 
        case 'B': 
         Bcounter++; 
         break; 
        case 'C': 
         Ccounter++; 
         break; 
       } 

      bw.write ("A:" + Acounter); 
      bw.write ("B:" + Bcounter); 
      bw.write ("C:" + Ccounter); 
+0

看起來像只檢查行的第一個字符('line.charAt(0)')。 – 2014-12-02 04:54:07

+2

循環遍歷文件的所有字符在哪裏? – 2014-12-02 04:54:32

回答

0

char ch [] = s.toCharArray(); Map map = new HashMap();

for (int i = 0; i < ch.length; i++) { 
     int count = 0; 
     for (int j = 0; j < ch.length; j++) { 
      if (ch[i] == ch[j]) 
       count++; 
     } 
     map.put(ch[i], count); 

    } 
    Iterator it = map.entrySet().iterator(); 
    while (it.hasNext()) { 
     Map.Entry pairs = (Map.Entry) it.next(); 
     System.out.println("count of " + pairs.getKey() + " = " 
       + pairs.getValue()); 
    } 
相關問題