Citat:
Ursprungligen postat av
KarlXVII
Jag försökte en gång till lösa det även utan String.join bara för skojs skull och det verkar funka såhär också:
String letters = "";
for (String item: items) {
letters += "\n" + item;
}
Då kan man bara returnera tillhörande text + letters rakt av och de hamnar snyggt på var sin rad utan att det blir radavbrytning efter sista item.
Fast där kommer du iofs få in ett newline innan ditt första item, har du då inte bara flyttat problemet från slutat av ditt resultat till början av det?
Ett sät att lösa det på 'r att göra som ditt första försök (med newline på slutet) och sedan när iterationen är klar trimma bort ditt sista newline.
Ett annat, om än aningen mer omständigt, är ju att kolla för varje varv om du har fler element i listan och i sådana fall lägga till ett newline. Då kan du med andra ord hoppa över din newline på sista raden.
En tedje approach kan ju vara att använda Iterator-interfacets hasNext-metod för att avgöra om du är på sista elementet eller ej:
Kod:
String test = "";
Iterator<String> iter = list.iterator();
while(iter.hasNext()){
test += iter.next();
if(iter.hasNext())
test += "\n";
}
System.out.println(test);
Den där borde funka med, iaf i min fantasi