Close

Java - How to repeat a string n number of times?

[Last Updated: Apr 28, 2020]

Java String Manipulation Java 

This tutorial shows different ways to repeat an input string n number of times.

By using InputStream#range()

package com.logicbig.example;

import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class StringRepeat {
  public static void main(String[] args) {
      String s = stringRepeat("=", 10);
      System.out.println(s);
  }

  private static String stringRepeat(String input, int n) {
      return IntStream.range(0, n)
                      .mapToObj(i -> input)
                      .collect(Collectors.joining());
  }
}
==========

By using Stream#generate()

package com.logicbig.example;

import java.util.stream.Collectors;
import java.util.stream.Stream;

public class StringRepeat1 {
  public static void main(String[] args) {
      String s = stringRepeat("=", 10);
      System.out.println(s);
  }

  private static String stringRepeat(String input, int n) {
      return Stream.generate(() -> input)
                   .limit(n)
                   .collect(Collectors.joining());
  }
}
==========

By using Collections#nCopies()

package com.logicbig.example;

import java.util.Collections;
import java.util.stream.Collectors;

public class StringRepeat2 {
  public static void main(String[] args) {
      String s = stringRepeat("=", 10);
      System.out.println(s);
  }

  private static String stringRepeat(String input, int n) {
      return Collections.nCopies(n, input)
                        .stream()
                        .collect(Collectors.joining());

  }
}
==========

By using StringBuilder#append()

package com.logicbig.example;

public class StringRepeat3 {
  public static void main(String[] args) {
      String s = stringRepeat("=", 10);
      System.out.println(s);
  }

  private static String stringRepeat(String input, int n) {
      StringBuilder sb = new StringBuilder();
      for (int i = 0; i < n; i++) {
          sb.append(input);
      }
      return sb.toString();
  }
}
==========

By using Java 11 String#repeat()

package com.logicbig.example;

public class StringRepeat4 {
  public static void main(String[] args) {
      String s = stringRepeat("=", 10);
      System.out.println(s);
  }

  private static String stringRepeat(String input, int n) {
      return input.repeat(n);
  }
}
==========

By using Apache common-lang's StringUtils#repeat()

pom.xml

<dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-lang3</artifactId>
   <version>3.10</version>
</dependency>
package com.logicbig.example;

import org.apache.commons.lang3.StringUtils;

public class StringRepeat6 {
  public static void main(String[] args) {
      String s = stringRepeat("=", 10);
      System.out.println(s);
  }

  private static String stringRepeat(String input, int n) {
      return StringUtils.repeat(input, n);
  }
}
==========

By using String#concat() recursively

package com.logicbig.example;

public class StringRepeat8 {
  public static void main(String[] args) {
      String s = stringRepeat("=", 10);
      System.out.println(s);
  }

  private static String stringRepeat(String input, int n) {
      return n > 1 ?
              input.concat(stringRepeat(input, n - 1)) :
              input;
  }
}
==========

By using String#concat() in a loop

package com.logicbig.example;

public class StringRepeat9 {
  public static void main(String[] args) {
      String s = stringRepeat("=", 10);
      System.out.println(s);
  }

  private static String stringRepeat(String input, int n) {
      String result = "";
      for (int i = 0; i < n; i++) {
          result = result.concat(input);
      }
      return result;
  }
}
==========

By using Arrays#fill()

package com.logicbig.example;

import java.util.Arrays;
import java.util.stream.Collectors;

public class StringRepeat10 {
  public static void main(String[] args) {
      String s = stringRepeat("=", 10);
      System.out.println(s);
  }

  private static String stringRepeat(String input, int n) {
      String[] strings = new String[n];
      Arrays.fill(strings, input);
      return Arrays.stream(strings).collect(Collectors.joining());
  }
}
==========

See Also