On se retrouve aujourd'hui pour la solution du précédent #KataOfTheWeek proposé par Jonathan en début de semaine !

En java:

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;

public class MorseDecoder {

    private static final String LETTER_SEPARATOR = " ";
    private static final String WORD_SEPARATOR = "/";

    public static final Map<String, String> CODES;

    static {
        CODES = new HashMap<>();
        CODES.put(".-", "a");
        CODES.put("-...", "b");
        CODES.put("-.-.", "c");
        CODES.put("-..", "d");
        CODES.put(".", "e");
        CODES.put("..-.", "f");
        CODES.put("--.", "g");
        CODES.put("....", "h");
        CODES.put("..", "i");
        CODES.put(".---", "j");
        CODES.put("-.-", "k");
        CODES.put(".-..", "l");
        CODES.put("--", "m");
        CODES.put("-.", "n");
        CODES.put("---", "o");
        CODES.put(".--.", "p");
        CODES.put("--.-", "q");
        CODES.put(".-.", "r");
        CODES.put("...", "s");
        CODES.put("-", "t");
        CODES.put("---", "o");
        CODES.put(".--.", "p");
        CODES.put("--.-", "q");
        CODES.put(".-.", "r");
        CODES.put("...", "s");
        CODES.put("-", "t");
        CODES.put("..-", "u");
        CODES.put("...-", "v");
        CODES.put(".--", "w");
        CODES.put("-..-", "x");
        CODES.put("-.--", "y");
        CODES.put("--..", "z");
        CODES.put(".----", "1");
        CODES.put("..---", "2");
        CODES.put("...--", "3");
        CODES.put("....-", "4");
        CODES.put(".....", "5");
        CODES.put("-....", "6");
        CODES.put("--...", "7");
        CODES.put("---..", "8");
        CODES.put("----.", "9");
        CODES.put("-----", "0");
    }

    public static void main(String[] args) {
        System.out.println(decode(".... . .-.. .-.. --- / - .- -.- .. -- .-"));
        System.out.println(decode("...- .. ...- . / .-.. . / -.-. --- -. ..-. .. -. . -- . -. -"));
    }

    public static String decode(String morseCode) {
        return Arrays.stream(morseCode.trim().split(WORD_SEPARATOR))
                .map(MorseDecoder::decodeWord)
                .collect(Collectors.joining(" "));
    }

    private static String decodeWord(String morseWord) {
        return Arrays.stream(morseWord.trim().split(LETTER_SEPARATOR))
                .map(MorseDecoder::decodeChar)
                .collect(Collectors.joining());
    }

    public static String decodeChar(String code) {
        return CODES.get(code);
    }
}

A bientôt pour un nouveau #KataOfTheWeek !