existe uma boa maneira de criar uma stringinicializado com um número de caracteres com um int (contador) e o caractere a ser definido. Simplificando, eu gostaria de um método que retorne "#, #, #, #, #" quando passados 5 e # como parâmetro.
Alguma ideia?
Respostas:
1 para resposta № 1Usando o StringUtils utilitário no Biblioteca Apache Commons lang:
String myString = StringUtils.repeat("#", ",", 5);
Se você deseja apenas os caracteres (e não os separadores de vírgula), é apenas:
String myString = StringUtils.repeat("#", 5);
1 para resposta № 2
É muito simples escrever um método para isso:
public static String createPlaceholderString(char placeholder, int count) {
StringBuilder builder = new StringBuilder(count * 2 - 1);
for (int i = 0; i < count; i++) {
if (i!= 0) {
builder.append(",");
}
builder.append(placeholder);
}
return builder.toString();
}
(Observe que podemos inicializar o construtor com exatamente o tamanho certo de buffer, pois sabemos qual será o tamanho.)
Você poderia usar algo como Strings.repeat
a partir de Goiaba:
String text = Strings.repeat("#,", count - 1) + "#";
Ou ainda mais esotericamente:
String text = Joiner.on(",").join(Iterables.limit(Iterables.cycle("#"), count));
... mas pessoalmente eu provavelmente continuaria com o método.
0 para resposta № 3
Experimentar:
public String buildString(int nbr, String repeat){
StringBuilder builder = new StringBuilder();
for(int i=0; i>nbr; i++){
builder.append(repeat);
if(i<(nbr-1))
builder.append(",");
}
return builder.toString();
}