Wandle eine for-Schleife in concat String in einen Lambda-Ausdruck um
Ich habe folgende for-Schleife, die durchläuft eine Liste von strings und speichert das erste Zeichen jedes Wortes in einem StringBuilder
. Ich würde gerne wissen, wie kann ich mich verwandeln, in einen lambda-Ausdruck
StringBuilder chars = new StringBuilder();
for (String l : list) {
chars.append(l.charAt(0));
}
InformationsquelleAutor der Frage Faktor 10 | 2015-07-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt, Sie rufen
toString()
auf dieStringBuilder
danach, ich glaube, du bist nur auf der Suche nachSammler.joining()
, nach der Zuordnung jeder Zeichenfolge auf ein einzelnes Zeichen substring:Beispielcode:
Beachten Sie die Verwendung von
substring
stattcharAt
, also haben wir noch ein stream von strings, mit zu arbeiten.InformationsquelleAutor der Antwort Jon Skeet
Tonnen von Möglichkeiten, dies zu tun - die einfachste option: stick auf hinzufügen, um eine
StringBuilder
und tun Sie dies:InformationsquelleAutor der Antwort Fritz Duchardt
Ohne zu schaffen viele fortgeschrittene String-Objekte kannst du es so machen:
Beachten Sie, dass die Verwendung
codePointAt
ist viel besser alscharAt
als wenn die Zeichenfolge beginnt mit Surrogat-paar, mitcharAt
Sie müssen möglicherweise einen unvorhersehbaren Ergebnis.InformationsquelleAutor der Antwort Tagir Valeev
Hier sind drei verschiedene Lösungen für dieses problem. Jede Lösung, die Filter leeren Saiten zunächst als sonst
StringIndexOutOfBoundsException
geworfen werden darf.Diese Lösung ist die gleiche wie die Lösung von Tagir mit dem zusätzlichen code für das filtern von leeren Saiten. Ich habe es hier in Erster Linie um den Vergleich zu den anderen beiden Lösungen, die ich zur Verfügung gestellt haben.
Die zweite Lösung verwendet Eclipse-Sammlungen, und nutzt eine relativ neue container-Typ genannt
CodePointAdapter
wurde Hinzugefügt in der version 7.0.Die Dritte Lösung nutzt Eclipse Sammlungen wieder, aber mit
injectInto
undStringBuilder
stattCodePointAdapter
.Hinweis: ich bin ein committer für Eclipse Sammlungen.
InformationsquelleAutor der Antwort Donald Raab
Einfache Art und Weise mit der Methode Referenz :
InformationsquelleAutor der Antwort Rahul Chauhan