2014-12-02 3 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)'). –

+2

Где цикл для итерации по всем символам файла? –

ответ

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()); 
    }