我需要一种方法来删除字符串的第一个字符,这是一个空格。我正在寻找一个方法,甚至是一个扩展的字符串类型,我可以用来削减字符串的字符。
当前回答
对于任何想要从字符串中删除前导空格的人(正如问题标题所明确要求的那样),这里有一个答案:
假设:
let string = " Hello, World! "
要删除所有前导空格,使用以下代码:
var filtered = ""
var isLeading = true
for character in string {
if character.isWhitespace && isLeading {
continue
} else {
isLeading = false
filtered.append(character)
}
}
print(filtered) // "Hello, World! "
我相信有比这更好的代码,但它已经完成了我的工作。
其他回答
代码少做多。
"Hello World".filter({$0 != " "}) // HelloWorld
我会使用这个扩展,以灵活和模仿其他集合如何做到这一点:
extension String {
func filter(pred: Character -> Bool) -> String {
var res = String()
for c in self.characters {
if pred(c) {
res.append(c)
}
}
return res
}
}
"this is a String".filter { $0 != Character(" ") } // "thisisaString"
string = string.filter ({!" ".contains($0) })
羽毛球猫的答案的Swift 3版本
extension String {
func replace(_ string:String, replacement:String) -> String {
return self.replacingOccurrences(of: string, with: replacement, options: NSString.CompareOptions.literal, range: nil)
}
func removeWhitespace() -> String {
return self.replace(" ", replacement: "")
}
}
对我来说,下面这行用来删除空白。
let result = String(yourString.filter {![" ", "\t", "\n"].contains($0)})