在java中重复String的简单方法

我正在寻找一种简单的常用方法或运算符,它允许我重复某些字符串n次。 我知道我可以使用for循环来写这个,但是我希望在必要时避免出现循环,并且在某处应该存在一个简单的直接方法。

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

repeated.equals("abcabcabc");

相关:

重复字符串javascript通过重复给定次数的另一个字符串来创建NSString

编辑

当它们不是完全必要时,我尽量避免出现循环,因为:

  • 即使它们被隐藏在另一个函数中,它们也会增加代码的行数。

  • 有人阅读我的代码必须弄清楚我在做什么循环。 即使它被评论并具有有意义的变量名称,他们仍然必须确保它没有做任何“聪明”的事情。

  • 程序员喜欢把聪明的东西放在for循环中,即使我把它写成“只做它想做的事情”,也不排除有人前来并添加一些额外的聪明的“修复”。

  • 他们很容易出错。 对于涉及索引的循环往往会产生一个错误。

  • For循环经常重复使用相同的变量,增加真正难以发现范围漏洞的机会。

  • For循环增加了猎人必须看的地方的数量。


  • 从Java 11开始,有一个方法String::repeat ,它完全符合你的要求:

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

    它的Javadoc说:

    /**
     * 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
     */ 
    

    这是最短的版本(需要Java 1.5+):

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

    其中n是要重复字符串的次数, s是要重复的字符串。

    无需导入或库。


    Commons Lang StringUtils.repeat()

    用法:

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

    上一篇: Simple way to repeat a String in java

    下一篇: Bitwise operations on Enum Flag