Heim > Java > javaLernprogramm > Detaillierte Code-Erklärung von Java8 StringJoiner

Detaillierte Code-Erklärung von Java8 StringJoiner

黄舟
Freigeben: 2017-03-24 11:02:09
Original
1804 Leute haben es durchsucht

Schließlich veröffentlicht Java 8 die StringJoiner-Klasse unter dem Paket java.util. Ich glaube nicht, dass dies eine radikal andere Implementierung ist als unser altmodischer Ansatz, StringBuffer/StringBuilder zum Verketten von Strings zu verwenden. Werfen wir einen Blick auf die Verwendung von StringJoiner und seine interne Implementierung.

Zum Beispiel habe ich zwei Zeichenfolgen namens „Smart“ und „Techie“ und möchte diese Zeichenfolgen zu [Smart,Techie] verketten. In diesem Fall ist mein Präfix „[“, das Suffix „]“ und das Trennzeichen „“,. StringJoiner verfügt über die folgenden zwei Konstruktoren .

StringJoiner(CharSequence delimiter)
Nach dem Login kopieren
StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
Nach dem Login kopieren

Wir möchten Präfixe und Suffixe haben, also verwenden Sie den zweiten Konstruktor im Beispiel.

StringJoiner sjr = new StringJoiner(",", "[", "]");
sjr.add("Smart").add("Techie");
System.out.println("The final Joined string is " + sjr);
Nach dem Login kopieren

Wenn wir kein Präfix und Suffix haben möchten, dann gehen Sie einfach wie folgt vor:

sjr1.add("Smart").add("Techie");
System.out.println("The final Joined string is " + sjr1);
Nach dem Login kopieren

Jetzt sehen wir uns die Implementierung der Methoden add und toString() an.

public StringJoiner add(CharSequence newElement) {
   prepareBuilder().append(newElement);
   return this;
}
Nach dem Login kopieren

prepareBuilder() wird wie folgt implementiert.

private StringBuilder prepareBuilder() {
    if (value != null) {
       value.append(delimiter);
    } else {
       value = new StringBuilder().append(prefix);
    }
    return value;
}
Nach dem Login kopieren

Aus der obigen Implementierung ist ersichtlich, dass StringJoiner dem altmodischen Ansatz folgt.

toString() wird wie folgt implementiert.

public String toString() {
    if (value == null) {
      return emptyValue;
    } else {
    if (suffix.equals("")) {
      return value.toString();
    } else {
    int initialLength = value.length();
    String result = value.append(suffix).toString();
    // reset value to pre-append initialLength
    value.setLength(initialLength);
    return result;
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Code-Erklärung von Java8 StringJoiner. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage