Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 3.03 KB | None | 0 0
  1. public abstract class ConvertisseurMorse extends Convertisseur {
  2.  
  3.     /**
  4.      * Initialisation de la table de codage
  5.      */
  6.     protected static final HashMap<Character, String> table = new HashMap<Character, String>();
  7.     static {
  8.      table.put(' ', "    ");
  9.      table.put('a', ".-");
  10.      table.put('b', "-...");
  11.      table.put('c', "-.-.");
  12.      table.put('d', "-..");
  13.      table.put('e', ".");
  14.      table.put('f', "..-.");
  15.      table.put('g', "--.");
  16.      table.put('h', "....");
  17.      table.put('i', "..");
  18.      table.put('j', ".---");
  19.      table.put('k', "-.-");
  20.      table.put('l', ".-..");
  21.      table.put('m', "--");
  22.      table.put('n', "-.");
  23.      table.put('o', "---");
  24.      table.put('p', ".--.");
  25.      table.put('q', "--.-");
  26.      table.put('r', ".-.");
  27.      table.put('s', "...");
  28.      table.put('t', "-");
  29.      table.put('u', "..-");
  30.      table.put('v', "...-");
  31.      table.put('w', ".--");
  32.      table.put('x', "-..-");
  33.      table.put('y', "-.--");
  34.      table.put('z', "--..");
  35.      table.put('0', "-----");
  36.      table.put('1', ".----");
  37.      table.put('2', "..---");
  38.      table.put('3', "...--");
  39.      table.put('4', "....-");
  40.      table.put('5', ".....");
  41.      table.put('6', "-....");
  42.      table.put('7', "--...");
  43.      table.put('8', "---..");
  44.      table.put('9', "----.");
  45.     }
  46.  
  47. }
  48.  
  49.  
  50.  
  51. class EncodeurMorseConvertisseur extends ConvertisseurMorse {
  52.  
  53.  
  54.     /**
  55.      * Conversion Alphabet -> Morse
  56.      * @param donnees
  57.      * @return
  58.      */
  59.     @Override
  60.     public String convertir(String donnees) {
  61.  
  62.         String resultat="";
  63.         for (int i=0; i<donnees.length(); i++)
  64.         {
  65.             if (table.containsKey(new Character(donnees.charAt(i))))
  66.             {
  67.                 resultat += table.get(new Character(donnees.charAt(i)))+' ';
  68.             }
  69.             else
  70.             {
  71.                 resultat += '?';
  72.             }
  73.         }
  74.  
  75.         return resultat;
  76.     }
  77.  
  78. }
  79.  
  80.  
  81.  
  82.  
  83. class DecodeurMorseConvertisseur extends ConvertisseurMorse  {
  84.  
  85.     /**
  86.      * Initialise la table de décodage ( inverse de la table de codage )
  87.      */
  88.     private static final HashMap<String, Character> tableInverse = new HashMap<String, Character>();
  89.     static {
  90.         Iterator it = ConvertisseurMorse.table.keySet().iterator();
  91.         while (it.hasNext())
  92.         {
  93.             Character car = (Character)it.next();
  94.             tableInverse.put(ConvertisseurMorse.table.get(car), car);
  95.         }
  96.     }
  97.  
  98.     /**
  99.      * Conversion des données Morse->Alphablet
  100.      * @param donnees
  101.      * @return
  102.      */
  103.     @Override
  104.     public String convertir(String donnees)  throws Exception {
  105.         String resultat="";
  106.        
  107.         StringTokenizer tokSequence=new StringTokenizer(donnees," ");
  108.         while(tokSequence.hasMoreTokens())
  109.         {
  110.             String sequence = tokSequence.nextToken();
  111.             if (tableInverse.containsKey(sequence)) resultat += tableInverse.get(sequence)+" ";
  112.             else    resultat += "? ";
  113.         }
  114.         return resultat;
  115.     }
  116.  
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement