Detaillierte Code-Erklärung von Java8 StringJoiner
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)
StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
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);
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);
Jetzt sehen wir uns die Implementierung der Methoden add und toString() an.
public StringJoiner add(CharSequence newElement) { prepareBuilder().append(newElement); return this; }
prepareBuilder() wird wie folgt implementiert.
private StringBuilder prepareBuilder() { if (value != null) { value.append(delimiter); } else { value = new StringBuilder().append(prefix); } return value; }
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; } }
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Java8 berechnet das Datum vor einem Jahr oder ein Jahr später mithilfe der minus()-Methode, um das Datum vor einem Jahr zu berechnen packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDemo09{publicstaticvoidmain(String[ ]args ){LocalDatetoday=LocalDate.now();LocalDate previousYear=today.minus(1,ChronoUni

So berechnen Sie das Datum eine Woche später in Java8. In diesem Beispiel wird das Datum eine Woche später berechnet. Das LocalDate-Datum enthält keine Zeitinformationen. Seine plus()-Methode wird zum Hinzufügen von Tagen, Wochen und Monaten verwendet. Die ChronoUnit-Klasse deklariert diese Zeiteinheiten. Da LocalDate ebenfalls ein unveränderlicher Typ ist, müssen Sie Variablen verwenden, um nach der Rückgabe Werte zuzuweisen. packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDemo08{publicstaticvoidmain(String[

Die Clock-Klasse von Java8 Java8 fügt eine Clock-Klasse zum Abrufen des aktuellen Zeitstempels oder von Datums- und Uhrzeitinformationen in der aktuellen Zeitzone hinzu. Wo zuvor System.currentTimeInMillis() und TimeZone.getDefault() verwendet wurden, können sie durch Clock ersetzt werden. packagecom.shxt.demo02;importjava.time.Clock;publicclassDemo10{publicstaticvoidmain(String[]args){//Gibt die aktuelle Zeitbasis zurück

Rufen Sie den aktuellen Zeitstempel in Java8 ab. Die Instant-Klasse verfügt über eine statische Factory-Methode now(), die den aktuellen Zeitstempel zurückgibt, wie unten gezeigt: packagecom.shxt.demo02;importjava.time.Instant;publicclassDemo16{publicstaticvoidmain(String[]args) {Instanttimestamp=Instant.now();System.out.println("Whatisvalueofthisinstant"+timestamp.t

So verwenden Sie vordefinierte Formatierungstools in Java8, um Datumsangaben zu analysieren oder zu formatieren packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.format.DateTimeFormatter;publicclassDemo17{publicstaticvoidmain(String[]args){StringdayAfterTommorrow="20180205 ";LocalDateformatted =LocalDate.parse

Bestimmen Sie, ob zwei Datumsangaben in Java8 gleich sind packagecom.shxt.demo02;importjava.time.LocalDate;publicclassDemo04{publicstaticvoidmain(String[]args){LocalDatedate1=LocalDate.now();LocalDatedate2=LocalDate.of(2018,2,5) ;if(date1.equals(date2)){System.out.println("Times are equal");}e

Die Java8-Version enthält folgende Pakete: packagecom.shxt.demo02;importjava.time.LocalDate;publicclassDemo02{publicstaticvoidmain(String[]args){LocalDatetoday=LocalDate.now();intyear=today.getYear();intmonth=today .getMonthValue();intday=today.getDayOfMonth();System.out.println

在Java8中检查闰年packagecom.shxt.demo02;importjava.time.LocalDate;publicclassDemo14{publicstaticvoidmain(String[]args){LocalDatetoday=LocalDate.now();if(today.isLeapYear()){System.out.println( "ThisyearisLeapyear");}else{System.out.println("2
