{"id":2608,"date":"2014-01-05T15:32:55","date_gmt":"2014-01-05T13:32:55","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=2608"},"modified":"2014-01-05T15:40:14","modified_gmt":"2014-01-05T13:40:14","slug":"strings-zusammenhngen-mit-stringjoiner","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2014\/01\/strings-zusammenhngen-mit-stringjoiner\/","title":{"rendered":"Strings zusammenh&auml;ngen mit StringJoiner"},"content":{"rendered":"<p>Um String zu einem gro\u00dfen Ergebnis zusammenzuh\u00e4ngen gibt es mehrere M\u00f6glichkeiten: Zum einen der Plus-Operator, zum anderen StringBuilder\/StringBuffer. Doch es geht noch ein bisschen einfacher, Teilstrings zu einem Gesamtstring zusammenzubauen. String bietet zum einen die praktische Hilfsmethode join(\u2026). Dahinter steht eine kleine Klasse StringJoiner, die auch direkt genutzt werden kann: <\/p>\n<p>StringJoiner sj = new StringJoiner( &#8222;, &#8220; ); <\/p>\n<p>sj.add( &#8222;1&#8220; ).add( &#8222;2&#8220; ).add( &#8222;3&#8220; ); <\/p>\n<p>System.out.println( sj.toString() ); \/\/ 1, 2, 3 <\/p>\n<p>Der Join-String ist vom Typ einer CharSequence und ist der Delimiter. Er wird zwischen jedes Element gesetzt, was hinzugef\u00fcgt wurde. Die im Beispiel eingesetzte Methode add(CharSequence) nimmt ein CharSequence an und liefern den aktuellen StringJoiner zur\u00fcck, sodass sich die add(\u2026)-Aufrufe kaskadieren lassen. Mit der Methode merge(StringJoiner) l\u00e4sst sich der Inhalt eines andere StringJoiner integrieren. <\/p>\n<h6>Zusammenh\u00e4ngen mit Infix, Prefix und Suffix<\/h6>\n<\/p>\n<p>Nicht nur das Trennzeichen selbst l\u00e4sst sich angeben, sondern auch ein Startzeichen und Endzeichen. Wenn etwa die Ausgabe vorne mit einem \u201c{\u201c beginnen und hinten mit einem \u201c}\u201d enden soll, hei\u00dft es: <\/p>\n<p>StringJoiner sj = new StringJoiner( &#8222;, &#8222;, &#8222;{&#8222;, &#8222;}&#8220; ); <\/p>\n<h6>Nichts zum Zusammenh\u00e4ngen gegeben<\/h6>\n<\/p>\n<p>Es kommt vor, dass dem StringJoiner nichts zum Zusammenf\u00fcgen gegeben wird. Dann wird er dennoch Pr\u00e4fix und Suffix einsetzen. <\/p>\n<p>StringJoiner sj = new StringJoiner( &#8222;, &#8222;, &#8222;{&#8222;, &#8222;}&#8220; ); <\/p>\n<p>System.out.println( sj.toString() ); \/\/ {} <\/p>\n<p>Ist das unerw\u00fcnscht, gibt setEmptyValue(CharSequence) ein Substitut an, das genau dann zum Zuge kommt, wenn kein add(\u2026) etwas zum StringJoiner zuf\u00fcgte: <\/p>\n<p>StringJoiner sj = new StringJoiner( &#8222;, &#8222;, &#8222;{&#8222;, &#8222;}&#8220; ).setEmptyValue(&#8222;&lt;nix&gt;&#8220;); <\/p>\n<p>System.out.println( sj.toString() ); \/\/ &lt;nix&gt; <\/p>\n<p>Zusammenfassend bietet die Klasse zwei Konstruktoren und f\u00fcnf Methoden: <\/p>\n<p>class java.util.<b>StringJoiner<\/b> <\/p>\n<p>\u00a7 StringJoiner(CharSequence delimiter) <\/p>\n<p>\u00a7 StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix) <\/p>\n<p>\u00a7 StringJoiner add(CharSequence newElement) <\/p>\n<p>\u00a7 StringJoiner merge(StringJoiner other) <\/p>\n<p>\u00a7 StringJoiner setEmptyValue(CharSequence emptyValue) <\/p>\n<p>\u00a7 int length() <\/p>\n<p>\u00a7 String toString()<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Um String zu einem gro\u00dfen Ergebnis zusammenzuh\u00e4ngen gibt es mehrere M\u00f6glichkeiten: Zum einen der Plus-Operator, zum anderen StringBuilder\/StringBuffer. Doch es geht noch ein bisschen einfacher, Teilstrings zu einem Gesamtstring zusammenzubauen. String bietet zum einen die praktische Hilfsmethode join(\u2026). Dahinter steht eine kleine Klasse StringJoiner, die auch direkt genutzt werden kann: StringJoiner sj = new StringJoiner( [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[11,66],"tags":[],"class_list":["post-2608","post","type-post","status-publish","format-standard","hentry","category-insel","category-java-8"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2608","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=2608"}],"version-history":[{"count":2,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2608\/revisions"}],"predecessor-version":[{"id":2610,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2608\/revisions\/2610"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=2608"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=2608"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=2608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}