在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