Heim >Java >javaLernprogramm >Wie verbinde ich effizient eine Liste von Strings in Java?
In JavaScript bietet die Methode Array.join() eine praktische Möglichkeit, Elemente eines Arrays zu einem einzigen String zu verketten. Bietet Java eine ähnliche Funktionalität?
Wenn Sie eine solche Funktionalität von Grund auf erstellen möchten, können Sie StringBuilder verwenden:
static public String join(List<String> list, String conjunction) { StringBuilder sb = new StringBuilder(); boolean first = true; for (String item : list) { if (first) first = false; else sb.append(conjunction); sb.append(item); } return sb.toString(); }
Seit Java 8 gibt es jedoch effizientere und elegantere Optionen verfügbar:
Um einer Liste beizutreten
List<String> list = Arrays.asList("foo", "bar", "baz"); String joined = String.join(" and ", list); // "foo and bar and baz"
Für Sammlungen mit Elementen anderer Typen als String können Sie den Collectors.joining-Collector mit verwenden die Stream-API:
List<Person> list = Arrays.asList( new Person("John", "Smith"), new Person("Anna", "Martinez"), new Person("Paul", "Watson ") ); String joinedFirstNames = list.stream() .map(Person::getFirstName) .collect(Collectors.joining(", ")); // "John, Anna, Paul"
Sie können auch die Verwendung des StringJoiner in Betracht ziehen Klasse, die zusätzliche Anpassungsoptionen bietet:
StringJoiner joiner = new StringJoiner(", "); list.stream() .forEach(joiner::add); String joinedFirstNames = joiner.toString(); // "John, Anna, Paul"
Das obige ist der detaillierte Inhalt vonWie verbinde ich effizient eine Liste von Strings in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!