我正在寻找一种简单的公共方法或运算符,它允许我重复某些字符串 n 次。我知道我可以使用 for 循环来编写它,但我希望在必要时避免使用 for 循环,并且应该在某处存在一个简单的直接方法。
String str = "abc"; String repeated = str.repeat(3); repeated.equals("abcabcabc");
相关:
重复字符串javascript 通过重复另一个字符串给定次数来创建NSString
已编辑
当不是完全必要时,我会尽量避免 for 循环,因为:
即使它们隐藏在另一个函数中,它们也会增加代码行数。
阅读我的代码的人必须弄清楚我在那个 for 循环中做了什么。即使它被注释并且具有有意义的变量名称,他们仍然必须确保它没有做任何“聪明”的事情。
程序员喜欢在 for 循环中加入聪明的东西,即使我写它是为了“只做它打算做的事情”,但这并不妨碍有人加入并添加一些额外的聪明“修复”。
它们通常很容易出错。涉及索引的 for 循环往往会产生一个错误。
for 循环经常重用相同的变量,增加了很难找到范围错误的机会。
For 循环增加了 bug 搜寻者必须查看的地方的数量。
String::repeat
". ".repeat(7) // Seven period-with-space pairs: . . . . . . .
Java 11中的新String::repeat功能是完全符合您要求的方法:
它的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 */