Wie lasse ich in Java den Inhalt einer ArrayList mit Kommas dazwischen ausgeben?
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] + ", ");
}
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])