String ArrayList

Thaitanium

Mitglied
Hallo zusammen,
ich bräuchte mal wieder eure Hilfe. 🙂

Ich habe eine String ArrayList. Welche je nach Situation 0 bis 16 Strings enthält.
Diesen Array übergebe ich an einen String welcher in einer meiner Mailing-Klasse benutzt wird.
Die Ausgabe in der Mail sieht dann irgendwie so aus:

Hallo,
folgende Namen sind enthalten: [Klaus, Peter, Horst]

Ich wünsche mir aber folgende ausgabe:

Hallo,
folgende Namen sind enthalten:

Klaus

Peter

Horst

Codemäßig sieht das ganze dann irgendwie so aus:
Java:
List<String> NameList = new ArrayList<String>(16);
        
		if (variableFürKlaus == true)
			NameList.add("Klaus");
		if (variableFürPeter == true)
			NameList.add("Peter");
		if (variableFürHorst == true)
			NameList.add("Horst");
//usw.

String message = "Hallo," + "<br />" + "folgende Namen sind enthalten:" + "<br />" + NameList;
Kann mir jemand auf die Sprünge helfen wie ich mein gewünschtes ziel erreichen kann?

Vielen Dank schonmal.
 
Per Schleife über die List iterieren und die Ausgabe bzw. den String selbst zusammenbauen.

Wobei das
Code:
variableFürKlaus == true
schon etwas merkwürdig ist und sich vermutlich optimaler gestalten liese.
 
Hast du vllt ein stück code-snipsel? ^^
Bin noch Anfänger. Was meinst Du denn mit optimaler gestalten?

EDIT: hab mal schnell gegoogelt meinst du sowas in der art?

Java:
static public void main( String arg[] )
{
  Iterator i = new ArrayIterator( arg );

  while ( i.hasNext() )
    System.out.println( "Eintrag: " + i.next() );
}
 
Zuletzt bearbeitet:
Java:
		StringBuilder sb = new StringBuilder("Hallo," + "<br />" + "folgende Namen sind enthalten:" + "<br />");
		for (String name : NameList) {
			sb.append(name);
			sb.append("<br />");
		}
		String message = sb.toString();
 
Was meinst Du denn mit optimaler gestalten?
Es sieht einfach etwas merkwürdig aus, dass Du für jeden Namen eine eigene boolean-Variable definiert hast. Was ist denn, wenn jetzt noch Peter, Ingeborg und Thomas dazu kommen. Willst Du dann immer Deinen Code anpassen? Das meinte Michael... wohl mit optimaler. Wenn es im Moment ohne die boolean-Variablen nicht geht, dann mach zumindest mal das hier:
Java:
// 1. Variablennamen ohne Sonderzeichen
// 2. Variablenname sprechender (was wird mit diesem boolean gesteuert?)
// 3. boolean-Variable direkt ohne == true/false
if (mustAddKlaus) {
 // Variablenname entsprechend Konvention
 // mit Kleinbuchstaben beginnend
 nameList.add("Klaus");
}
EDIT: hab mal schnell gegoogelt meinst du sowas in der art?
Nope, einfaches foreach über die Liste ist wohl gemeint:
Java:
// Für dynamisches Zusammenbauen von Strings besser den StringBuilder
// als die Konkatenierung mit +
StringBuilder messageBuilder = new StringBuilder().append("Hallo,").append("<br />").append("folgende Namen sind enthalten:").append("<br />");
for(String name: nameList) {
  messageBuilder.append(name).append("<br />");
}
message = messageBuilder.toString();
 
Danke schonmal für die vielen Antworten.
Werde gleich mal rumprobieren wenn's geklappt hat;
und wenn nicht bestimmt auch. 😉

Ich hab das ganze nur vereinfacht um mein Problem verständlicher zu machen ohne den genauen Kontext zu kennen. Mag sein, dass es auch konkret in meinem Fall einfacher/anders zu gestalten ist, aber wie bereits gesagt bin ich noch Anfänger und es läuft gerade so schön. Ans Optimieren mache ich mich dann an anderer Stelle. 🙂

@nillehammer: "Deine" Konventionen halte ich in meinem "realen" Code ein.

Viele Grüße und Danke nochmal.
 

Zurück
Oben