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=newArrayList<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?
Ist nur eine Vermutung meinerseits, kenne ja den Code und Kontext nicht, aber für jeden Eintrag in der Liste einen boolean zu haben, ist recht starr und könnte sicherlich Optimierungspotential bieten.
Wenn Du irgendwann man 17 Einträge in der List speicherst, brauchst Du dann auch 17 booleans?
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/falseif(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 =newStringBuilder().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.