43 votes

Java: String - ajouter un caractère n fois

Y a-t-il un moyen simple d'ajouter un caractère ou une autre chaîne n fois à une chaîne existante? Je n'ai rien trouvé dans String, Stringbuilder, etc.

3 votes

Quel est le problème avec une boucle for ?

1 votes

Cherchez-vous une méthode? il n'y en a pas.

2 votes

Je n'ai rien trouvé dans String, Stringbuilder ... Je suis sûr que vous n'avez pas vu la méthode append(str) de StringBuilder ou l'opération de concaténation + de String.

11voto

ColinD Points 48573

Vous pouvez utiliser la méthode repeat de Strings de Guava :

String existingString = ...
existingString += Strings.repeat("foo", n);

5voto

Ján Vorčák Points 3636
pour (int i = 0; i < n; i++) {
    existing_string += 'c';
}

mais vous devriez utiliser StringBuilder à la place, et économiser de la mémoire

int n = 3;
String existing_string = "string";
StringBuilder builder = new StringBuilder(existing_string);
for (int i = 0; i < n; i++) {
    builder.append(" append ");
}

System.out.println(builder.toString());

5voto

Jimshad Abdulla Points 91

Il est préférable d'utiliser StringBuilder au lieu de String car String est une classe immuable et ne peut pas être modifiée une fois créée : dans String chaque concaténation entraîne la création d'une nouvelle instance de la classe String avec la chaîne modifiée.

3voto

Hosam Aly Points 14797

En plus des réponses ci-dessus, vous devez initialiser le StringBuilder avec une capacité appropriée, d'autant plus que vous la connaissez déjà. Par exemple :

int capacité = existingString.length() + n * appendableString.length();
StringBuilder builder = new StringBuilder(capacité);

1voto

mprabhat Points 11553
public String appendNewStringToExisting(String exisitingString, String newString, int number) {
    StringBuilder builder = new StringBuilder(exisitingString);
    for(int iDx = 0; iDx < number; iDx++){
        builder.append(newString);
    }
    return builder.toString();
}

0 votes

Je pense que vous n'avez pas voulu mettre "existingString" entre guillemets. N'est-ce pas? Vous vouliez passer l'argument là-dedans.

0 votes

Oui, parfois sans IDE :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X