我想使用Swift创建一个带有 n 空格的字符串,但不使用for
循环或手动这样:
// string with 5-blank space
var s = " "
答案 0 :(得分:40)
String
已经有repeating:count:
initializer,就像Array
(和其他采用RangeReplaceableIndexable
协议的集合一样):
init(repeating repeatedValue: String, count: Int)
所以你可以打电话:
let spaces = String(repeating: " ", count: 5) // -> " "
请注意,重复参数是一个字符串,而不仅仅是一个字符,因此您可以根据需要重复整个序列:
let wave = String(repeating: "-=", count: 5) // -> "-=-=-=-=-="
编辑:更改为Swift 3语法并删除了对Swift 1类型模糊问题的讨论。如果您需要使用旧版本,请参阅编辑历史记录。
答案 1 :(得分:7)
在Swift 3中:
var s = String(repeating: " ", count: 5)
https://developer.apple.com/reference/swift/string/2427723-init
答案 2 :(得分:2)
我认为我们可以使用stringbyPaddingToLength
这样的事情应该有效:
var str = " ";
var str2 = str.stringByPaddingToLength(20, withString: " ", startingAtIndex: 0);
答案 3 :(得分:0)
2020年| SWIFT 3.0-5.1:
我喜欢c#的语法来执行此操作。所以我写了一个扩展名:
static func * (str: String, repeatTimes: Int) -> String {
return String(repeating: str, count: repeatTimes)
}
现在您可以通过以下方式执行此操作:
let tenSpaces = " " * 10
let ab15Times = "ab" * 15