title: Sorting frequency of chars
body: <p>I just made an algorithm that counts the frequency of chars in a String. What I am confused about is how to sort the frequency so the character with the greatest number of occurences is listed at the top, and the least at the bottom. </p>
  
  <p>At first I tried having another variable 'fc' (for frequency counter) to coincide with my original counter variable 'k'. However I am stuck in the thought process of how to go about sorting this frequency, the fc var I made is just useless. </p>
  
  <p>Thanks for any help provided!</p>
  
  <p>Here is my code:</p>
  
  <pre><code>  import java.io.*;
  public class Freq
  {
      public static void main(String args[])throws IOException
      {
          //read input stream
          BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
          int ci,i,j,k,l,fc;l=0;
          String str,str1;
          char c,ch;
          System.out.println("Enter your String");
          str=in.readLine();
          i=str.length();
          //cycle through ASCII table chars and obtain chars typed
          for(c='A';c&lt;='z';c++)
          {
              k=0;
              fc=0;           //fc keeps count like k
              for(j=0;j&lt;i;j++)
              {
                  ch=str.charAt(j);
                  if(ch==c)
                      k++;
                      fc=k-1;     //was going to represent this counter for 'less than k'
  
              }
              if(k&gt;0)
              System.out.println("The character "+c+" has occured for "+k+" times");
          }
      }
  }
  </code></pre>