Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Taak{
- public static void main ( String args[] )
- {
- char var1;
- String zin = args[0];
- int teller = 0, positie = 0;
- char [] out = new char [26];
- //tellen hoeveel letters we hebben alleen klein letters
- for( int i = 0; i < zin.length(); i++)
- {
- if( zin.charAt(i) >= 'a' && zin.charAt(i) <= 'z')
- teller++;
- }
- //System.out.println("teller = " + teller);
- //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
- char [] array = new char [teller];
- int [] tellers = new int [teller];
- maakArray(out);
- maakTellers(tellers);
- //array opvullen met elk karakter
- for( int i = 0; i < zin.length(); i++)
- {
- if( zin.charAt(i) >= 'a' && zin.charAt(i) <= 'z')
- {
- array[positie] = zin.charAt(i);
- positie++;
- }
- }
- //aflopen en tellen hoeveel elke char voorkomt
- for (int i = 0; i < array.length; i++)
- {
- teller = 1;
- var1 = array[i];
- //kijken of de letter al geweest is, zoja overslagen van deze letter
- if(!isGeweest(out, var1))
- {
- //kijken of er in de zin nog een zelfde letter voorkomt
- for ( int k = i+1; k < array.length; k++)
- {
- if( var1 == array[k] )
- {
- teller++;
- }
- }
- //System.out.println("letter : " + var1 + " teller : " + teller);
- zetGetal(array,tellers,teller,var1); //getal zetten bij de letter
- verwijder(out,var1); //deze letter verwijderen
- }
- }
- //testcase om te kijken hoeveel elke letter is voorgekomen
- // for(int i = 0; i < array.length; i++)
- // {
- // System.out.print("letter: " + array[i]);
- // System.out.println(" hoeveel: " + tellers[i]);
- // }
- schrijfUit(array,tellers); //uitschrijven resultaat
- }
- //uitschrijven
- static void schrijfUit(char [] array, int [] tellers)
- {
- int max = 0, positie = 0;
- //maximum zoeken
- for(int y = 0; y < array.length; y++)
- {
- for( int i = 0; i < tellers.length; i++)
- {
- if(tellers[i] != -1 && tellers[i] != 0)
- {
- max = tellers[i];
- positie = i;
- for ( int k = i+1; k < tellers.length; k++)
- {
- if ( max == tellers[k] )
- {
- if( array[positie] < array[k] )
- {
- positie = k;
- }
- }
- if ( max < tellers[k] )
- {
- max = tellers[k];
- positie = k;
- }
- }
- //doen we om niet hetzelfde getal terug te gebruiken
- tellers[positie] = -1;
- System.out.print(array[positie]);
- }
- }
- }
- }
- //getal zetten op dezelfde plaats waar de char staat
- static void zetGetal(char [] array, int [] tellers, int hoeveel, char var1)
- {
- boolean test = true;
- for(int i = 0; i < array.length && test; i++)
- {
- if(array[i] == var1)
- {
- tellers[i] = hoeveel;
- test = false;
- }
- }
- }
- static void maakTellers( int [] array)
- {
- for (int i = 0; i < array.length; i++)
- array[i] = 0;
- }
- //array aanmaken met heel het alfabet om bij te houden welke letter al geweest is later
- static void maakArray( char[] array)
- {
- int positie = 0;
- for ( char teller = 'a'; teller <= 'z'; teller++)
- {
- array[positie] = teller;
- positie++;
- }
- }
- //uit de array de letter verwijderen door er een @ te zetten
- static void verwijder(char [] array, char letter)
- {
- for( int i = 0; i < array.length; i++)
- {
- if ( array[i] == letter)
- {
- array[i] = '@';
- }
- }
- }
- //kijken of de letter al is geweest
- static boolean isGeweest(char [] array, char letter)
- {
- for ( int i = 0; i < array.length; i++)
- {
- if( array[i] == letter )
- {
- return false;
- }
- }
- return true;
- }
- }
Add Comment
Please, Sign In to add comment