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 543 fois
Modifier
1
Évaluations de la communautéPersonne n'a encore évalué cette question, soyez le premier !
1
Que signifie SRP ?1
Une classe Java qui convertit les nombres arabes en chiffres romains.1
Écrire une implémentation en Java du code kata FizzBuzz.1
Quelle fonctionnalité de Java 7 n'a été utilisable qu'en Java 8?3
Écrire une fonction qui retourne le premier caractère d'une chaîne de caractères en Java5
Ce code permet de récupérer aléatoirement des nombres entre 1 et 31 dans les résultats. Il aurait fallu déclarer SimpleDateFormat dans le Thread.1
Quel est le nom du design pattern utilisé pour structurer les applications complexes en considérant le domaine du problème ?