2015-03-25 1 views
0
import java.util.Scanner; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.IOException; 


@SuppressWarnings("unused") 
public class Input { 

    public static void main(String[] args) throws FileNotFoundException { 
     @SuppressWarnings("resource") 
     String input = new Scanner(new File("characterfreq.txt")).useDelimiter("\\A").next(); 
     char[] character = input.toCharArray(); 
     int size = character.length; 
     int i = 0, j = 0; 
     float count = 0; 

     for (i=0; i < size; ++i) { 
      count = 0; 
      for (j = 0; j < size; ++j) { 
       if (j < i && character[i] == character[j]) { 
        break; 
       } 
       if (character[j] == character[i]) 
        count++; 
      } 
      if (j == size-1) { 
       System.out.println(character[i]+" is present "+count/size+" times"); 
      } 
     } 
    } 
} 

пожалуйста, вы можете мне помочь, когда я запускаю код, ничего не происходит, у меня был код, работающий нормально в какой-то момент, я добавил еще одну строку и испортил ее, и теперь я не могу понять то, что я сделал неправильносимвол частота программа не работает

+0

Что вы хотите сделать? распечатать только частоту? если да, то почему вы печатаете 'count/size'? –

ответ

0

вы пропустили открывающую скобку в вашем коде на второй if конструкции в вашем цикл, вставьте скобу и он должен работать:

if (character[j] == character[i]) { 
    count++; 
} 

также изменить оператор печати для печати только count, а не count/size, если вы хотите фактическую частоту.

Смежные вопросы