Guest User

Untitled

a guest
Feb 21st, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.12 KB | None | 0 0
  1. class Taak{
  2.   public static void main ( String args[] )
  3.   {
  4.    
  5.     char var1;
  6.     String zin = args[0];
  7.     int teller = 0, positie = 0;
  8.     char [] out = new char [26];
  9.    
  10.     //tellen hoeveel letters we hebben alleen klein letters
  11.     for( int i = 0; i < zin.length(); i++)
  12.     {
  13.       if( zin.charAt(i) >= 'a' && zin.charAt(i) <= 'z')
  14.         teller++;
  15.     }
  16.     //System.out.println("teller = " + teller);
  17.    
  18.     //arrays aanmaken array is om elke char van de zin in te stoppen die we nodig hebben , tellers is om bij te houden hoeveel elke letter in de zin voorkomt
  19.     char [] array = new char [teller];
  20.     int [] tellers = new int [teller];
  21.     maakArray(out);
  22.     maakTellers(tellers);
  23.    
  24.     //array opvullen met elk karakter
  25.     for( int i = 0; i < zin.length(); i++)
  26.     {
  27.       if( zin.charAt(i) >= 'a' && zin.charAt(i) <= 'z')
  28.       {
  29.         array[positie] = zin.charAt(i);
  30.         positie++;
  31.       }
  32.     }
  33.    
  34.     //aflopen en tellen hoeveel elke char voorkomt
  35.     for (int i = 0; i < array.length; i++)
  36.     {
  37.       teller = 1;
  38.       var1 = array[i];
  39.       //kijken of de letter al geweest is, zoja overslagen van deze letter
  40.       if(!isGeweest(out, var1))
  41.       {
  42.         //kijken of er in de zin nog een zelfde letter voorkomt
  43.         for ( int k = i+1; k < array.length; k++)
  44.         {
  45.           if( var1 == array[k] )
  46.           {
  47.             teller++;
  48.           }
  49.         }
  50.         //System.out.println("letter : " + var1 + " teller : " + teller);
  51.         zetGetal(array,tellers,teller,var1); //getal zetten bij de letter
  52.         verwijder(out,var1); //deze letter verwijderen
  53.       }
  54.     }
  55.    
  56.     //testcase om te kijken hoeveel elke letter is voorgekomen
  57. //    for(int i = 0; i < array.length; i++)
  58. //    {
  59. //      System.out.print("letter: " + array[i]);
  60. //      System.out.println(" hoeveel: " + tellers[i]);
  61. //    }
  62.     schrijfUit(array,tellers); //uitschrijven resultaat
  63.   }
  64.  
  65.   //uitschrijven
  66.   static void schrijfUit(char [] array, int [] tellers)
  67.   {
  68.     int max = 0, positie = 0;
  69.     //maximum zoeken
  70.     for(int y = 0; y < array.length; y++)
  71.     {
  72.       for( int i = 0; i < tellers.length; i++)
  73.       {
  74.         if(tellers[i] != -1 && tellers[i] != 0)
  75.         {
  76.           max = tellers[i];
  77.           positie = i;
  78.           for ( int k = i+1; k < tellers.length; k++)
  79.           {
  80.             if ( max == tellers[k] )
  81.             {
  82.               if( array[positie] < array[k] )
  83.               {
  84.                 positie = k;
  85.                
  86.               }
  87.                
  88.             }
  89.             if ( max < tellers[k] )
  90.             {
  91.               max = tellers[k];
  92.               positie = k;
  93.             }
  94.           }
  95.           //doen we om niet hetzelfde getal terug te gebruiken
  96.           tellers[positie] = -1;
  97.           System.out.print(array[positie]);
  98.         }
  99.       }
  100.     }
  101.   }
  102.  
  103.   //getal zetten op dezelfde plaats waar de char staat
  104.   static void zetGetal(char [] array, int [] tellers, int hoeveel, char var1)
  105.   {
  106.     boolean test = true;
  107.     for(int i = 0; i < array.length && test; i++)
  108.     {
  109.       if(array[i] == var1)
  110.       {
  111.         tellers[i] = hoeveel;
  112.         test = false;
  113.       }
  114.     }
  115.   }
  116.  
  117.   static void maakTellers( int [] array)
  118.   {
  119.     for (int i = 0; i < array.length; i++)
  120.       array[i] = 0;
  121.   }
  122.  
  123.   //array aanmaken met heel het alfabet om bij te houden welke letter al geweest is later
  124.   static void maakArray( char[] array)
  125.   {
  126.     int positie = 0;
  127.    
  128.     for ( char teller = 'a'; teller <= 'z'; teller++)
  129.     {
  130.       array[positie] = teller;
  131.       positie++;
  132.     }
  133.   }
  134.  
  135.   //uit de array de letter verwijderen door er een @ te zetten
  136.   static void verwijder(char [] array, char letter)
  137.   {
  138.     for( int i = 0; i < array.length; i++)
  139.     {
  140.       if ( array[i] == letter)
  141.       {
  142.         array[i] = '@';
  143.       }
  144.     }
  145.   }
  146.  
  147.   //kijken of de letter al is geweest
  148.   static boolean isGeweest(char [] array, char letter)
  149.   {
  150.     for ( int i = 0; i < array.length; i++)
  151.     {
  152.       if( array[i] == letter )
  153.       {
  154.         return false;
  155.       }
  156.     }
  157.     return true;
  158.   }
  159. }
Add Comment
Please, Sign In to add comment