Ich arbeite derzeit für eine bestimmte SI-Firma und nehme derzeit an einem Java-Wartungsprojekt teil.
for (String hoge :) {
if (sb.length() != 0) {
sb.append(",");
}
sb.append("");
}
Wenn Sie StringBuilder zum Verketten von Zeichenfolgen verwenden (beim Generieren von CSV-ähnlichen Zeichen usw.), denke ich manchmal, dass ** java8 oder höher mit StringJoiner ... ** problemlos ausgeführt werden kann. ↓ Das ist es. Ich möchte eine Liste von etwas verketten. String java7 Ich denke, dass es andere SIer-Leute gibt, die an dem folgenden Projekt teilnehmen und ähnliche Probleme haben, ** String Joiner Ich habe meine eigene Klasse erstellt, die sich genauso verhält, und sie als Bibliothek freigegeben, damit sie unter der Java7-Umgebung </ font> ** verwendet werden kann. Alles ist in Ordnung, also wollte ich nur meine eigene Bibliothek für die Öffentlichkeit öffnen.
Ich habe eine Klasse namens StringJoiner erstellt und als Bibliothek veröffentlicht. In Wirklichkeit ist es eine Wrapper-Klasse für StringBuilder. Es ist eine Klasse, die intern über StringBuilder verfügt und nur Trennzeichen, Präfix und Suffix gut verkettet. Klicken Sie hier für die Quelle ↓ https://github.com/lovelyswallow/swallowJava8/blob/master/src/main/java/com/lovelyswallow/likejava8/util/StringJoiner.java
Sie können auf die unten stehende URL zugreifen und das Glas direkt herunterladen oder einfach das Glas mit Gradle usw. herunterladen.
Da java.util.StringJoiner
in java7 nicht verwendet werden kann,
Wenn Sie stattdessen "com.lovelyswallow.likejava8.util.StringJoiner" importieren, können Sie es auf dieselbe Weise wie den Java-Standard StringJoiner verwenden.
https://mvnrepository.com/artifact/io.github.lovelyswallow/swallowJava8
Ich habe in 1.0 einen Fehler gemacht und ihn mit ** java12 </ font> ** kompiliert, sodass er in der Java7-Zielumgebung nicht funktioniert (lacht). Bitte verwenden Sie 1.1 oder höher, wenn Sie verwenden. Der Inhalt von 1.1 und 1.1.1 ist der gleiche. 1.1.1 war nur eine leere Veröffentlichung, weil ich die Nebenversion ** erhöhen wollte **.
Da es dieselbe Methode wie der Java-Standard StringJoiner bietet, kann es genauso verwendet werden. Der einzige Unterschied zum Java-Standard ist der Typ des Konstruktors. Es ist vielleicht nicht notwendig, es jetzt zu erklären, aber vorerst habe ich ein Beispiel für die Verwendung geschrieben.
import com.lovelyswallow.likejava8.util.StringJoiner;
final class Test {
public static void main(String[] args) {
StringJoiner sj1 = new StringJoiner(",");
sj1.add("hoge");
sj1.add("fuga");
sj1.add("piyo");
System.out.println(sj1.toString()); // => hoge,fuga,piyo
StringJoiner sj2 = new StringJoiner(",", "prefix", "suffix");
sj2.add("hoge");
sj2.add("fuga");
sj2.add("piyo");
System.out.println(sj2.toString()); // => prefixhoge,fuga,piyosuffix
//Da es sich tatsächlich um eine Wrapper-Klasse von StringBuilder handelt, können Sie die Kapazität im Konstruktor angeben.
StringJoiner sj3 = new StringJoiner(",", 100);
StringJoiner sj4 = new StringJoiner(",", "prefix", "suffix", 100);
}
}
Wie ich am Anfang sagte, ist es eine Bibliothek für die folgenden Personen, daher ist es jetzt nicht sehr nützlich.
Diesmal habe ich diese Bibliothek erstellt, weil ich glaubte, dass es neben mir noch andere SIer gibt, die die gleichen Probleme haben.
In Zukunft möchte ich eine andere Java8-ähnliche Klasse für eine Java7-Umgebung als StringJoiner erstellen. Es kann jedoch subtil sein, wenn Sie den Lambda-Ausdruck nicht verwenden können, wenn Sie etwas erstellen, das sich wie Stream verhält. .. ..
Viel Glück Japan: Kacke:
Recommended Posts