Heim >Java >javaLernprogramm >Wie verbinde ich effizient eine Liste von Strings in Java?

Wie verbinde ich effizient eine Liste von Strings in Java?

Linda Hamilton
Linda HamiltonOriginal
2024-12-24 19:42:11338Durchsuche

How to Efficiently Join a List of Strings in Java?

Konvertieren einer Liste zu einem verbundenen String 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:

String.join

Um einer Liste beizutreten Insbesondere können Sie die String.join()-Methode verwenden:

List<String> list = Arrays.asList("foo", "bar", "baz");
String joined = String.join(" and ", list); // "foo and bar and baz"

Collectors.joining

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"

StringJoiner

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn