Java: StringBuffer & Concaténation

Je suis en utilisant StringBuffer en Java pour la concaténation de chaînes, comme suit:

StringBuffer str = new StringBuffer();

str.append("string value");

Je voudrais savoir si il y a une méthode (bien que je n'ai pas trouver quelque chose à partir d'un rapide coup d'œil à la documentation), ou un autre moyen d'ajouter "rembourrage".

Laissez-moi vous expliquer; à chaque fois que je ajouter quelque chose à la chaîne, je veux ajouter un espace à la fin, comme ceci:

String foo = "string value";
str.append(foo + " ");

et j'ai plusieurs appels à ajouter.. et à chaque fois, je veux ajouter un espace. Est-il un moyen de définir l'objet, de sorte que l'ajout d'un espace automatiquement après chaque ajout?

EDIT --

String input
StringBuffer query = new StringBuffer();
Scanner scanner = new Scanner(System.in);
scanner.UseDelimiter("\n");

do {
   System.out.println("sql> ");

   input = scanner.next();

   if (!empty(input)) query.append(input);

   if (query.toString().trim().endsWith(";")) {
         //run query
   }
}
while (!input.equalsIgnoreCase("exit");

Je vais utiliser StringBuilder même si, comme grom suggéré, mais c'est la façon dont le code ressemble à droite maintenant

Cela peut vous aider: stackoverflow.com/questions/63150/...
pouvez-vous nous montrer certains de votre code lorsque vous ajoutez des éléments? Parce que peut-être il ya une autre façon de construire la chaîne qui aurait plus de sens.
hmm, en fait j'ai une boucle while qui ajoute une entrée à une chaîne, et la boucle existe lorsque l'entrée se termine par un ";"
Il est probablement plus élégant (et plus rapide) pour utiliser une expression régulière pour déterminer s'il faut exécuter la requête ou non, par exemple: if (query.correspond à(".*;\s*")) {
Ne serait-il pas préférable de vérifier d'entrée se termine par ';' au lieu de la conversion de la mémoire tampon à une chaîne à chaque fois?

OriginalL'auteur Jean Paul Galea | 2008-09-30