package questioncomplementaire; import java.util.HashMap; public class Morse extends AlgoCodage{ private String[] alphabet; private HashMap decoder; public Morse(){ this.nom = "Morse"; alphabet = new String[] { ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.." }; decoder = new HashMap(); int a = 65; for (int i = 0; i < alphabet.length; i++) { decoder.put(alphabet[i], String.valueOf((char)(a+i))); } } @Override public String toString() { return "Morse"; } @Override public String encode(String s) { String encode = ""; int a = 65; // Code ASCII de A for (int i = 0; i < s.length(); i++) { encode += alphabet[(int)s.charAt(i)-a] + "/"; } return encode; } @Override public String decode(String s) { String decode = ""; int a = 65; // Code ASCII de A String[] lettres = s.split("/"); for (int i = 0; i < lettres.length; i++) { decode += decoder.get(lettres[i]); } return decode; } }