Maison Java javaDidacticiel Explication détaillée du code de Java8 StringJoiner

Explication détaillée du code de Java8 StringJoiner

Mar 24, 2017 am 11:02 AM

Enfin, Java 8 publie la classe StringJoiner sous le package java.util. Je ne pense pas qu'il s'agisse d'une implémentation radicalement différente de notre approche à l'ancienne consistant à utiliser StringBuffer/StringBuilder pour concaténer des chaînes. Jetons un coup d'œil à l'utilisation de StringJoiner et à son implémentation interne.

Par exemple, j'ai deux chaînes appelées "Smart" et "Techie", et je souhaite concaténer ces chaînes dans [Smart,Techie]. Dans ce cas, mon préfixe est "[", le suffixe est "]" et le délimiteur est ",". StringJoiner a les deux constructeurs suivants.

StringJoiner(CharSequence delimiter)
Copier après la connexion
StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
Copier après la connexion

Nous voulons avoir des préfixes et des suffixes, utilisez donc le deuxième constructeur dans l'exemple.

StringJoiner sjr = new StringJoiner(",", "[", "]");
sjr.add("Smart").add("Techie");
System.out.println("The final Joined string is " + sjr);
Copier après la connexion

Si nous ne voulons pas avoir de préfixe et de suffixe, alors juste :

sjr1.add("Smart").add("Techie");
System.out.println("The final Joined string is " + sjr1);
Copier après la connexion

Maintenant, nous verrons l'implémentation des méthodes add et toString().

public StringJoiner add(CharSequence newElement) {
   prepareBuilder().append(newElement);
   return this;
}
Copier après la connexion

prepareBuilder() est implémenté comme suit.

private StringBuilder prepareBuilder() {
    if (value != null) {
       value.append(delimiter);
    } else {
       value = new StringBuilder().append(prefix);
    }
    return value;
}
Copier après la connexion

D'après l'implémentation ci-dessus, il est évident que StringJoiner suit l'approche à l'ancienne.

toString() est implémenté comme suit.

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;
    }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment calculer la date il y a un an ou un an plus tard en Java 8 ? Comment calculer la date il y a un an ou un an plus tard en Java 8 ? Apr 26, 2023 am 09:22 AM

Java8 calcule la date il y a un an ou un an plus tard à l'aide de la méthode minus() pour calculer la date il y a un an packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDemo09{publicstaticvoidmain(String[ ]args ){LocalDatetoday=LocalDate.now();LocalDatepreviousYear=today.minus(1,ChronoUni

Comment calculer la date une semaine plus tard en utilisant Java 8 ? Comment calculer la date une semaine plus tard en utilisant Java 8 ? Apr 21, 2023 pm 11:01 PM

Comment calculer la date une semaine plus tard en Java8 Cet exemple calculera la date une semaine plus tard. La date LocalDate ne contient pas d'informations de temps. Sa méthode plus() est utilisée pour ajouter des jours, des semaines et des mois. La classe ChronoUnit déclare ces unités de temps. Puisque LocalDate est également un type immuable, vous devez utiliser des variables pour attribuer des valeurs après le retour. packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDemo08{publicstaticvoidmain(String[

Comment utiliser la classe Clock en Java8 Comment utiliser la classe Clock en Java8 Apr 25, 2023 pm 03:37 PM

Classe Clock de Java8 Java8 ajoute une classe Clock pour obtenir l'horodatage actuel ou les informations de date et d'heure dans le fuseau horaire actuel. Là où System.currentTimeInMillis() et TimeZone.getDefault() étaient utilisés auparavant, ils peuvent être remplacés par Clock. packagecom.shxt.demo02;importjava.time.Clock;publicclassDemo10{publicstaticvoidmain(String[]args){//renvoie la base de temps actuelle

Comment obtenir l'horodatage actuel en Java8 Comment obtenir l'horodatage actuel en Java8 May 01, 2023 am 11:46 AM

Obtenez l'horodatage actuel dans Java8. La classe Instant a une méthode de fabrique statique now() qui renverra l'horodatage actuel, comme indiqué ci-dessous : packagecom.shxt.demo02;importjava.time.Instant;publicclassDemo16{publicstaticvoidmain(String[]args) {Instanttimestamp=Instant.now();System.out.println("Quelle est la valeur de cetinstant"+timestamp.t

Comment utiliser des outils de formatage prédéfinis pour analyser ou formater des dates en Java8 Comment utiliser des outils de formatage prédéfinis pour analyser ou formater des dates en Java8 Apr 28, 2023 pm 07:40 PM

Comment utiliser des outils de formatage prédéfinis dans Java8 pour analyser ou formater des dates =DateLocale.parse

Comment déterminer si deux dates sont égales en Java8 Comment déterminer si deux dates sont égales en Java8 May 02, 2023 am 08:46 AM

Déterminer si deux dates sont égales dans Java8 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("Les temps sont égaux");}e

Comment obtenir des informations sur l'année, le mois et le jour en Java8 Comment obtenir des informations sur l'année, le mois et le jour en Java8 Apr 19, 2023 am 09:49 AM

Java8, 月, 日信息packagecom.shxt.demo02;importjava.time.LocalDate;publicclassDemo02{publicstaticvoidmain(String[]args){LocalDatetoday=LocalDate.now();intyear=today.getYear();intmonth=today .getMonthValue();intday=aujourd'hui.getDayOfMonth();System.out.println

Comment vérifier les années bissextiles en Java 8 ? Comment vérifier les années bissextiles en Java 8 ? May 08, 2023 pm 11:16 PM

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

See all articles