Java Strings einem Stringbuffer übergeben

Tron36

Ensign
Registriert
Jan. 2011
Beiträge
209
Hallo Leute

ich habe eine frage zu folgendem Code eine grundsätzliche frage:

Code:
boolean verify= false;
		for (String stringName: stringList) {
			if (verify) {
				sbReturn.append(", ");
			}
			stringBufferReturn.append(MessageFormat.format("\"{0}\"", stringName));
			verify= true;
		}
		stringBufferReturn.append(".");
return stringBufferReturn.toString();

Was geschieht eigl in Zeile 6?

wenn man z.B. 3 String in der stringList hat, bekommt man dann: \string1\string2\string3\
Mit der Zeile 9 dann: \string1\string2\string3\.

Lg Tron36
 
Stringbuffer reiht allein nur die Strings aneinander, ähnlich wie mit dem + Zeichen, nur deutlich effektiver da nicht für jede Kleinigkeit umkopiert wird, sondern erst mal gesammelt wird. Das Messageformat.format formatiert einfach den Text, damit kann man dann ein Datum in den Text einfügen usw.

Zeile 9 fügt auch einfach einen String an, der nur aus einem Punkt besteht.
 
Zuletzt bearbeitet von einem Moderator:
Hi rob-,
danke für deine hilfe.

ich ich wollte eigl. fragen was
Code:
"\"{0}\"", stringName
macht?

Lg Tron36
 
Das sind Platzhalter für Eintrage im Array, welche dann durch den eigentlichen Inhalt des Arrays ersetzt werden.
 
Man könnte den Code auch so schreiben:

Code:
...
String quotedString = MessageFormat.format("\"{0}\"", stringName);
stringBufferReturn.append(quotedString);
...

bzw. besser so:

Code:
public String createMessage(...) {
    ...
    result.append(quoteString(name));
    ...
}

private String quoteString(String rString) {
    return MessageFormat.format("\"{0}\"", rString);
}

Man sollte möglichst granular programmieren. Eine Methode sich möglichst auf eine Aufgabe beschränken. Benennt man die einzelnen Methoden sinnvoll, wird die Logik auch für unerfahrene Leser leicht verständlich.
 
Zuletzt bearbeitet: (cut&paste error)
Hi,

danke für die antworten. Die Haben mir sehr geholfen.

lg Tron36
 
Zurück
Oben