Implementieren Sie die PHP-Implodierungsfunktion in Java

Überblick

Ich habe so etwas wie die implodierende Funktion von PHP in Java implementiert.

(Ergänzung) Für Java 8 [join](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html#join-java.lang.CharSequence-java.lang. Es scheint eine Funktion namens Iterable-) zu geben. @nishemon Danke für deinen Kommentar!

Implementierung

/**
 * Join list elements with a string
 *
 * @param stringList The list of strings to implode.
 * @param glue The String for joining list.
 * @return Returns a string containing a string representation of all the list elements
 *          in the same order, with the glue string between each element.
 */
public static String implode(List<String> stringList, String glue) {
    StringBuilder stringBuilder = new StringBuilder();
    int index = 0;
    int size = stringList.size();

    for (String value : stringList) {
        stringBuilder.append(value);

        if (index < size - 1) {
            stringBuilder.append(glue);
        }

        index++;
    }

    return stringBuilder.toString();
}

(Ergänzung) Mir wurde eine allgemeine Implementierung beigebracht. @ Shiracamus Vielen Dank für Ihren Kommentar!

public static String implode(Iterable<? extends CharSequence> values, CharSequence glue) {
    StringBuilder buffer = new StringBuilder();
    CharSequence separator = "";
    for (CharSequence value : values) {
        buffer.append(separator).append(value);
        separator = glue;
    }
    return buffer.toString();
}

(Ergänzung) Mir wurde die Implementierung erneut beigebracht. @ saka1029 Vielen Dank für Ihren Kommentar!

public static <T> String implode(List<T> list, String glue) {
    StringBuilder sb = new StringBuilder();
    for (T e : list) {
        sb.append(glue).append(e);
    }
    return sb.substring(glue.length());
}

Prüfung

Derzeit nur eine einfache

@Test
public void testImplode() {
    ArrayList<String> list = new ArrayList<>();
    list.add("A");
    list.add("B");
    list.add("C");

    String glue = " ";
    String actual = Util.implode(list, glue);

    String expected = "A B C";
    assertEquals(expected, actual);
}

Über PHP implode ()

Im PHP Handbuch heißt es:

Hinweis: implode () kann aus historischen Gründen Argumente in beliebiger Reihenfolge akzeptieren. Unter dem Gesichtspunkt der Konsistenz mit explode () wäre es jedoch weniger verwirrend, die Reihenfolge der in der Dokumentation beschriebenen Argumente zu verwenden.

In PHP ist die Standardeinstellung von "kleber" eine leere Zeichenfolge, diesmal wird sie jedoch nicht berücksichtigt. Wenn Sie dies tun, kann es gut sein, etwas so überladen zu machen.

public static String implode(List<String> stringList) {
    return implode(stringList, "");
}

Ergänzung

Bitte lassen Sie mich wissen, wenn etwas nicht stimmt oder ein besserer Weg! : bete:

Referenz

Recommended Posts

Implementieren Sie die PHP-Implodierungsfunktion in Java
Implementieren Sie die Anwendungsfunktion in Rails
Implementierung der zweistufigen Authentifizierung in Java
Implementieren Sie die Standardauthentifizierung in Java
Implementieren Sie eine Kombination aus Mathematik in Java
2 Implementieren Sie eine einfache Syntaxanalyse in Java
Implementieren Sie das Senden von E-Mails in Java
Implementieren Sie eine funktionsähnliche schnelle Sortierung in Java
Implementieren Sie rm -rf in Java.
Implementieren Sie die XML-Signatur in Java
Implementieren Sie einen tabellengesteuerten Test in Java 14
3 Implementieren Sie einen einfachen Interpreter in Java
Implementieren Sie eine einfache Anmeldefunktion in Rails
Implementieren Sie dieselbe Funktion wie das C, C ++ - System ("cls") in Java
Versuchen Sie, Yuma in Java zu implementieren
Implementieren Sie die CSV-Download-Funktion in Rails
1 Implementieren Sie eine einfache Phrasenanalyse in Java
Implementierung einer ähnlichen Funktion in Java
So implementieren Sie die Datumsberechnung in Java
So implementieren Sie den Kalman-Filter mit Java
Implementieren Sie API Gateway Lambda Authorizer in Java Lambda
Schriftliche Unterschiede in Ruby, PHP, Java, JS
Versuchen Sie, n-ary Addition in Java zu implementieren
So erzwingen Sie Codierungskonventionen in Java
Unveränderlich (unveränderlich) Listet die Objektkonvertierungsfunktion in Java8 auf
Implementieren Sie so etwas wie einen Stack in Java
Partisierung in Java
Änderungen in Java 11
Janken in Java
Umfangsrate in Java
FizzBuzz in Java
[Java] Implementieren Sie eine Funktion, die eine im Builder-Muster implementierte Klasse verwendet
Implementieren Sie die Sternebewertungsfunktion mit Raty in Rails 6
Verschlüsseln / Entschlüsseln mit AES256 in PHP und Java
Interpreter-Implementierung durch Java
Machen Sie einen Blackjack mit Java
Janken App in Java
Einschränkungsprogrammierung in Java
Setzen Sie Java8 in Centos7
NVL-artiger Typ in Java
"Hallo Welt" in Java
Aufrufbare Schnittstelle in Java
Ich habe versucht, die Firebase-Push-Benachrichtigung in Java zu implementieren
[Rails] Implementieren Sie die Registrierungs- / Löschfunktion für Kreditkarten in PAY.JP
Kommentare in der Java-Quelle
Azure funktioniert in Java
Formatieren Sie XML in Java
Einfache HTML-Spezialchars in Java
Boyer-Moore-Implementierung in Java
Hallo Welt in Java
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
Verwenden Sie OpenCV mit Java
WebApi-Memorandum mit Java
Typbestimmung in Java
Implementieren Sie Singleton mit Enum schnell in Java
Befehle in Java ausführen (Ping)