Question du test Java et Craftsmanship

Code Java qui remplace les clés d'un template par leurs valeurs.

Expert

Ce code

public class ArgumentReplacer {

  public static final String BEGINING_MUSTACH = "\\{\\{\\s*";
  public static final String ENDING_MUSTACH = "\\s*\\}\\}";

  public static String replace(String template, Map<String, String> arguments) {
    if (needNoReplace(template, arguments)) {
      return template;
    }

    return arguments.entrySet().stream().reduce(template, ArgumentReplacer::replaceEntry, keepFirst());
  }

  private static boolean needNoReplace(String template, Map<String, String> arguments) {
    return template == null || arguments == null;
  }

  private static String replaceEntry(String result, Map.Entry<String, String> entry) {
    return result.replaceAll(BEGINING_MUSTACH + entry.getKey() + ENDING_MUSTACH, entry.getValue());
  }

  private static BinaryOperator<String> keepFirst() {
    return (k, v) -> v;
  }
}
Auteur: Clément DevosStatut : PubliéeQuestion passée 417 fois
Modifier
1
Évaluations de la communautéPersonne n'a encore évalué cette question, soyez le premier !