Java String.repeat(): The Best Way to Repeat Strings Without Loops

🚀 Introduction: Why Use String.repeat()?

Before Java 11, repeating a string required manual loops or StringBuilder, making the code:
Verbose – Multiple lines for simple text repetition
Inefficient – Creating unnecessary loop iterations
Harder to read

💡 Java 11 introduced String.repeat(n), which provides a cleaner, faster, and more readable way to repeat text.

📌 In this article, you’ll learn:
✅ Why String.repeat() is better than loops
✅ How to use repeat(n) with complete examples
✅ Performance benefits compared to traditional loops

🔍 The Problem: Repeating Strings Before Java 11

✔ Using a for Loop (Old Approach)

public class RepeatUsingLoop {
    public static void main(String[] args) {
        String text = "Hello ";
        String result = "";

        for (int i = 0; i < 5; i++) {  // Repeat 5 times
            result += text;
        }

        System.out.println(result);
    }
}

📌 Problems:
Creates unnecessary intermediate strings (result += text is inefficient)
Concatenation inside a loop is slow
Not the best practice for performance

✔ Using StringBuilder (More Efficient but Still Verbose)

public class RepeatUsingStringBuilder {
    public static void main(String[] args) {
        String text = "Hello ";
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < 5; i++) {
            sb.append(text);
        }

        System.out.println(sb.toString());
    }
}

📌 Problems:
More efficient than +=, but still uses loops
Extra boilerplate (StringBuilder and loop code)

✅ The Best Solution: Using String.repeat(n)

1️⃣ Simple Example: Repeating Text

public class RepeatUsingStringRepeat {
    public static void main(String[] args) {
        String text = "Hello ";
        String result = text.repeat(5); // Repeat 5 times

        System.out.println(result);
    }
}

📌 Why is this better?
Cleaner syntax – No loops, no extra variables
Faster execution – Optimized internally by Java
More readabletext.repeat(5) clearly conveys the intent

2️⃣ Using repeat() for Pattern Generation

String.repeat() is perfect for generating text-based patterns.

public class StringRepeatPatterns {
    public static void main(String[] args) {
        System.out.println("*".repeat(10));  // Line of 10 asterisks
        System.out.println("=".repeat(20));  // Line of 20 equal signs
    }
}

3️⃣ Using repeat() to Format Indentation

repeat() can generate dynamic spaces or indentations.

public class RepeatIndentation {
    public static void main(String[] args) {
        int level = 3;
        String indent = "  ".repeat(level); // Indent using spaces

        System.out.println(indent + "Indented Text");
    }
}

📌 Output:

      Indented Text

Perfect for hierarchical text displays (logs, JSON, XML formatting, etc.)

4️⃣ Combining repeat() with Streams for Multi-Line Output

import java.util.stream.IntStream;

public class RepeatWithStreams {
    public static void main(String[] args) {
        IntStream.range(1, 6).forEach(i -> 
            System.out.println("*".repeat(i)) // Pyramid pattern
        );
    }
}

📌 Output:

*
**
***
****
*****

Combining repeat() with Streams makes complex text patterns easier!

🚀 Performance Comparison: repeat() vs Loops

Method Performance Code Readability Best Use Case
for loop with += Slow (Creates many intermediate strings) Messy Avoid using
StringBuilder.append() Faster (Reduces intermediate objects) Verbose When loops are required
String.repeat(n) 🚀 Fastest (Optimized in Java) Clean & Simple Best for text repetition

📌 String.repeat(n) is the fastest and cleanest way to repeat text in Java!


🔥 When to Use String.repeat() Instead of Loops?

Use Case Use repeat()? Use Loops?
Basic string repetition ✅ Yes ❌ No
Generating separators ("=====") ✅ Yes ❌ No
Creating text-based patterns ✅ Yes ❌ No
Repeating complex objects ❌ No ✅ Yes
Repeatedly modifying a string ❌ No ✅ Yes

🚀 Use String.repeat(n) whenever you need to repeat simple text!


🔑 Key Takeaways

Java 11’s String.repeat(n) simplifies text repetition.
Removes the need for loops or StringBuilder for simple cases.
More efficient, faster, and readable than manual loops.
Works great for patterns, indentation, and UI formatting.

By switching to repeat(n), your Java code will be cleaner, faster, and easier to maintain! 🚀

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare