Je voudrais créer une fonction qui a la signature suivante:
public String createString(int length, char ch)
Il doit renvoyer une chaîne de caractères répétitifs de la longueur spécifiée.
Par exemple, si la longueur est 5 et ch est "p", la valeur de retour doit être:
ppppp
Existe-t-il un moyen de le faire sans bouclage jusqu'à ce qu'il atteigne la longueur requise?
Et sans constantes définies en externe?
char[] chars = new char[len];
Arrays.fill(chars, ch);
String s = new String(chars);
StringUtils.repeat(str, count)
d'Apache commons-lang
Voici une solution élégante et pure Java une ligne:
String str = new String(new char[10]).replace("\0", "1");
Pour mémoire, avec Java8, vous pouvez le faire avec des flux:
String p10times = IntStream.range(0, 10)
.mapToObj(x -> "p")
.collect(Collectors.joining());
Mais cela semble quelque peu exagéré.
Un peu plus avancé et lisible,
public static String repeat(int len, String ch) {
String s = IntStream.generate(() -> 1).limit(len).mapToObj(x -> ch).collect(Collectors.joining());
System.out.println("s " + s);
return s;
}