Simple way to repeat a String in java

I'm looking for a simple commons method or operator that allows me to repeat some String n times. I know I could write this using a for loop, but I wish to avoid for loops whenever necessary and a simple direct method should exist somewhere.

String str = "abc";
String repeated = str.repeat(3);

repeated.equals("abcabcabc");

Related to:

repeat string javascript Create NSString by repeating another string a given number of times

Edited

I try to avoid for loops when they are not completely necessary because:

  • They add to the number of lines of code even if they are tucked away in another function.

  • Someone reading my code has to figure out what I am doing in that for loop. Even if it is commented and has meaningful variables names, they still have to make sure it is not doing anything "clever".

  • Programmers love to put clever things in for loops, even if I write it to "only do what it is intended to do", that does not preclude someone coming along and adding some additional clever "fix".

  • They are very often easy to get wrong. For loops involving indexes tend to generate off by one bugs.

  • For loops often reuse the same variables, increasing the chance of really hard to find scoping bugs.

  • For loops increase the number of places a bug hunter has to look.


  • From Java 11 on, there's a method String::repeat that does exactly what you asked for:

    String str = "abc";
    String repeated = str.repeat(3);
    repeated.equals("abcabcabc");
    

    Its Javadoc says:

    /**
     * Returns a string whose value is the concatenation of this
     * string repeated {@code count} times.
     * <p>
     * If this string is empty or count is zero then the empty
     * string is returned.
     *
     * @param count number of times to repeat
     *
     * @return A string composed of this string repeated
     * {@code count} times or the empty string if this
     * string is empty or count is zero
     *
     * @throws IllegalArgumentException if the {@code count} is
     * negative.
     *
     * @since 11
     */ 
    

    Here is the shortest version (Java 1.5+ required):

    repeated = new String(new char[n]).replace("", s);
    

    Where n is the number of times you want to repeat the string and s is the string to repeat.

    No imports or libraries needed.


    Commons Lang StringUtils.repeat()

    Usage:

    String str = "abc";
    String repeated = StringUtils.repeat(str, 3);
    
    repeated.equals("abcabcabc");
    
    链接地址: http://www.djcxy.com/p/72510.html

    上一篇: Java EE究竟是什么?

    下一篇: 在java中重复String的简单方法