[JAVA] Ich möchte eine einfache Wiederholung einer Zeichenkette schreiben

def repeat(str, n):
    return str * n 

Wenn Sie eine neue Zeichenfolge generieren möchten, die den Inhalt der Zeichenfolge n-mal wiederholt, können Sie sie wie im obigen Beispiel in Python schreiben. Mit anderen Worten, der Operator * hat die Funktion, Zeichenketten zu wiederholen, aber wenn es darum geht, dasselbe in Java zu realisieren, denke ich, dass die folgenden Methoden häufig definiert sind (Nullprüfung usw.). Kürzung).

public static String repeat(String str, int n) {
  var sb = new StringBuilder();
  while(n-- > 0) sb.append(str);
  return sb.toString();
}

Es ist wahr, dass dies in Ordnung ist, aber es ist eine Schande, dass Sie in Python in einer Zeile schreiben können, aber nicht in Java (Mystery). Daher denke ich oft darüber nach, wie man einfach sich wiederholende Zeichenfolgen in Java schreibt, aber das erste, woran ich persönlich denke, ist die Verwendung von "Stream".

public static String repeat(String str, int n) {
  return IntStream.range(0, n).mapToObj(i -> str).collect(Collectors.joining(""));
}

Es ist sicherlich eine Zeile, aber ich habe den Eindruck, dass es etwas knifflig geschrieben ist, um es zu einer Zeile zu machen. Um es einfacher zu machen, habe ich mir bei der Untersuchung verschiedener Dinge die folgende Methode ausgedacht.

public static String repeat(String str, int n) {
  return String.join("", Collections.nCopies(n, str));
}

Es ist kürzer und einfacher. Ich habe keine Lust, knifflige Dinge zu tun, um es kürzer zu machen. Da Collections.nCopies eine Liste generiert, möchte ich diese aktiv nutzen und dabei darauf achten.

Es ist nicht gut, StringUtils.repeat von Apache Commons Lang (´ ・ ω ・ `) zu verwenden.

Recommended Posts

Ich möchte eine einfache Wiederholung einer Zeichenkette schreiben
Ich möchte einen Unit Test schreiben!
Ich möchte eine Webanwendung entwickeln!
[Ruby] Ich möchte einen Methodensprung machen!
Ich möchte eine Struktur für die Ausnahmebehandlung entwerfen
Ich möchte schnell von Java nach SQLite schreiben
Ich möchte ein kleines Symbol in Rails verwenden
Ich möchte eine Funktion in der Rails Console definieren
Ich möchte in RSpec auf einen GoogleMap-Pin klicken
Ich möchte eine generische Anmerkung für einen Typ erstellen
Ich möchte der Kommentarfunktion eine Löschfunktion hinzufügen
Ich möchte Zeichen konvertieren ...
So schreiben Sie ein benutzerorientiertes Programm (1)
[Java] Ich möchte ein Byte-Array in eine Hexadezimalzahl konvertieren
Ich möchte einen relativen Pfad in einer Situation finden, in der Pfad verwendet wird
Ich möchte ein bestimmtes Modell von ActiveRecord ReadOnly erstellen
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Methode aufrufen und die Nummer zählen
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Ich möchte ein Formular erstellen, um die Kategorie [Schienen] auszuwählen
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Ich habe versucht, in Java von einer Zeichenfolge in einen LocalDate-Typ zu konvertieren
Ich möchte dem select-Attribut einen Klassennamen geben
Ich möchte eine Parkettdatei auch in Ruby erstellen
Ich möchte FireBase verwenden, um eine Zeitleiste wie Twitter anzuzeigen
Ich möchte eine Schleife schreiben, die auf einen Index mit der Stream-API von Java 8 verweist
Ich möchte rekursiv nach Dateien in einem bestimmten Verzeichnis suchen
Ich möchte mit link_to [Hinweis] eine Schaltfläche mit einem Zeilenumbruch erstellen.
Ich möchte in der Lage sein, selbst reguläre Ausdrücke zu denken und zu schreiben. ..
Ich möchte eine Browsing-Funktion mit Ruby on Rails hinzufügen
Ich möchte Swipeback auf einem Bildschirm verwenden, der XLPagerTabStrip verwendet
Ich möchte nur Java mit Eclipse auf meinem Mac schreiben
Ich habe versucht, Code wie eine Typdeklaration in Ruby zu schreiben
Ich möchte mit einem regulären Ausdruck zwischen Zeichenketten extrahieren
Eine flüssige Schnittstelle? -Ich möchte Ihnen die Möglichkeit geben, guten Code zu schreiben. 3 [C # Refactoring Sample]
[Ruby] Ich möchte nur das ungerade Zeichen in der Zeichenfolge ausgeben
[Rails] Ich möchte Daten verschiedener Modelle in einem Formular senden
Ich möchte JSP in Emacs einfacher als die Standardeinstellung schreiben.
Ich möchte doppelte Fehlermeldungen beseitigen
[Basic] So schreiben Sie ein Dockerfile Selbstlernend ②
Ich möchte im Dialogfeld mehrere Elemente mit einem benutzerdefinierten Layout auswählen
Ich möchte DBViewer mit Eclipse 2018-12 verwenden! !!
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben (PowerMockito Edition)
Ich möchte Apache Wicket 8 zusammenfassen, weil es eine gute Idee ist
[Einführung in Java] So schreiben Sie ein Java-Programm
Ich möchte PHP 7.2 unter Ubuntu 20.04 installieren.
Ich möchte mit Jakarta EE 8 mit Java 11 ein dunkles Web-SNS erstellen
Ich möchte ein chinesisches (koreanisches) PDF mit dünnen Berichten anzeigen
Notation zum Einfügen von Variablen in eine Zeichenfolge
Ich möchte Java-Updates insgesamt stoppen
Ich möchte @Autowired in Servlet verwenden