Wie lasse ich in Java den Inhalt einer ArrayList mit Kommas dazwischen ausgeben?

2 Antworten

Die Standard-Bibliothek gibt das erst ab Version 8 her: String.join().

In 3rd-Party-Bibliotheken (Apache, Google) ist sowas schon länger drin, aber wenn Du die nicht verwenden willst oder darfst, schreibe Dir einfach eine eigene Klasse:

public class Join {

private String delimiter;
private String result;

public Join ( final String delimiter, final String... args ) {
this.delimiter = delimiter;
append(args);
}

/** Append string(s), if not empty. **/
public void append ( final String... args ) {
for ( String arg : args )
if ( arg!=null && !arg.equals("") )
result = result==null ? arg : result+delimiter+arg;
}

@Override
public String toString () {
return result==null ? "" : result;
}
/** Convenience function: **/
public static String join ( final String delimiter, final String... args ) {
return new Join(delimiter,args).toString();
}
}

Das kannst Du nach Belieben anpassen und z.B. für Collection<String> überladen. Die Implementierung geht zwar auch effizienter, aber damit würde ich warten, bis es gebraucht wird.

Egal wie Du es machst, eines ist hoffentlich unstrittig:

In produktivem Sourcecode muss für diesen Zweck eine Zeile reichen. Irgendwelche for-Schleifen oder String-Operationen haben dort absolut nichts zu suchen.

for(int i = 0; i < deineListe.size(); i++){
 System.out.print(deineListe[i] + ", ");
}
Woher ich das weiß:Berufserfahrung – Beruf, Schule, Hobby und eigene Erfahrungen
ralphdieter  12.11.2016, 13:13

1. Du gibst auch ein Komma hinter dem letzten Element aus.

2. "Enhanced for statements" sind viel lesbarer und weniger fehleranfällig:

for( int element: deineListe )
// verwende element (statt deineListe[i])

0