[JAVA] Je veux écrire une simple répétition d'une chaîne de caractères

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

Si vous souhaitez générer une nouvelle chaîne qui répète le contenu de la chaîne n fois, vous pouvez l'écrire en Python comme dans l'exemple ci-dessus. En d'autres termes, l'opérateur * a pour fonction de répéter une chaîne de caractères, mais quand il s'agit de réaliser la même chose en Java, je pense que les méthodes suivantes sont souvent définies (contrôle nul etc. réduction).

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

C'est vrai que c'est bien, mais c'est dommage que vous puissiez écrire en une seule ligne en Python mais pas en Java (mystère). Je pense donc souvent à la façon d'écrire simplement des chaînes répétitives en Java, mais la première chose à laquelle je pense personnellement est d'utiliser Stream.

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

C'est certainement une ligne, mais j'ai l'impression que c'est écrit de manière un peu délicate pour en faire une ligne. Afin de simplifier les choses, j'ai mis au point la méthode suivante en recherchant diverses choses.

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

C'est plus court et plus simple. Je n'ai pas envie de faire des choses délicates pour le raccourcir. Puisque Collections.nCopies génère une liste, je voudrais l'utiliser activement tout en y prêtant attention.

Il n'est pas bon d'utiliser StringUtils.repeat d'Apache Commons Lang (´ ・ ω ・ `)

Recommended Posts

Je veux écrire une simple répétition d'une chaîne de caractères
Je veux écrire un test unitaire!
Je souhaite développer une application web!
[Ruby] Je veux faire un saut de méthode!
Je souhaite concevoir une structure pour la gestion des exceptions
Je veux écrire rapidement de java vers sqlite
Je veux utiliser une petite icône dans Rails
Je souhaite définir une fonction dans la console Rails
Je veux cliquer sur une broche GoogleMap dans RSpec
Je souhaite créer une annotation générique pour un type
Je souhaite ajouter une fonction de suppression à la fonction de commentaire
Je veux convertir des caractères ...
Pour écrire un programme orienté utilisateur (1)
[Java] Je souhaite convertir un tableau d'octets en un nombre hexadécimal
Je veux trouver un chemin relatif dans une situation où Path est utilisé
Je souhaite créer un modèle spécifique d'ActiveRecord ReadOnly
Je veux faire une liste avec kotlin et java!
Je veux appeler une méthode et compter le nombre
Je veux créer une fonction avec kotlin et java!
Je souhaite créer un formulaire pour sélectionner la catégorie [Rails]
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
Je veux donner un nom de classe à l'attribut select
Je veux créer un fichier Parquet même en Ruby
Je souhaite utiliser FireBase pour afficher une chronologie comme Twitter
Je veux écrire une boucle qui fait référence à un index avec l'API Stream de Java 8
Je souhaite rechercher de manière récursive des fichiers dans un répertoire spécifique
Je veux créer un bouton avec un saut de ligne avec link_to [Note]
Je veux pouvoir penser et écrire moi-même des expressions régulières. ..
Je souhaite ajouter une fonction de navigation avec ruby on rails
Je souhaite utiliser le balayage arrière sur un écran qui utilise XLPagerTabStrip
Je veux juste écrire Java en utilisant Eclipse sur mon Mac
J'ai essayé d'écrire du code comme une déclaration de type en Ruby
Je veux extraire entre des chaînes de caractères avec une expression régulière
Une interface fluide? -Je veux vous donner l'occasion d'écrire du bon code. 3 [Exemple de refactoring C #]
[Ruby] Je souhaite afficher uniquement le caractère impair dans la chaîne de caractères
[Rails] Je souhaite envoyer des données de différents modèles dans un formulaire
Je veux écrire une JSP dans Emacs plus facilement que la valeur par défaut.
Je souhaite éliminer les messages d'erreur en double
[Basique] Comment écrire un auto-apprentissage Dockerfile ②
Je souhaite sélectionner plusieurs éléments avec une disposition personnalisée dans la boîte de dialogue
Je souhaite utiliser DBViewer avec Eclipse 2018-12! !!
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3 (édition PowerMockito)
Je voudrais résumer Apache Wicket 8 car c'est une bonne idée
[Introduction à Java] Comment écrire un programme Java
Je souhaite installer PHP 7.2 sur Ubuntu 20.04.
Je souhaite créer un SNS Web sombre avec Jakarta EE 8 avec Java 11
Je souhaite afficher un PDF chinois (coréen) avec des rapports fins
Notation pour mettre des variables dans une chaîne
Je veux arrêter complètement les mises à jour Java
Je veux utiliser @Autowired dans Servlet