从String(Swift)中删除前六个字符

时间:2017-04-13 04:59:36

标签: swift string character

最好的方法是删除字符串的前六个字符?通过Stack,我发现了几种应该是解决方案的方法,但我发现它们有错误。例如,

extension String {
func removing(charactersOf string: String) -> String {
    let characterSet = CharacterSet(charactersIn: string)
    let components = self.components(separatedBy: characterSet)
    return components.joined(separator: "")
}

如果我输入https://youtube.com这样的网站,并将其存储为名为网站的变量,请输入以下内容

website.removing(charactersOf: "https://")

它删除了https://部分,但它也删除了文本中的所有内容,所有代码,'等等。

如何删除第一个字符?

}

4 个答案:

答案 0 :(得分:15)

在Swift 4中,它非常简单,只需使用dropFirst(n: Int)

即可
let myString = "Hello World"
myString.dropFirst(6)
//World

在您的情况下:website.dropFirst(6)

答案 1 :(得分:12)

length是您要删除的字符数(在您的情况下为6)

extension String {

  func toLengthOf(length:Int) -> String {
            if length <= 0 {
                return self
            } else if let to = self.index(self.startIndex, offsetBy: length, limitedBy: self.endIndex) {
                return self.substring(from: to)

            } else {
                return ""
            }
        }
}

enter image description here enter image description here

答案 2 :(得分:11)

为什么不:

let stripped = String(website.characters.dropFirst(6))

对我来说似乎更简洁明了。

(不管怎么说,它都不适用于多个char emojis)

[编辑] Swift 4使这更短:

let stripped = String(website.dropFirst(6))

答案 3 :(得分:0)

它将从字符串中删除前6个字符

    var str = "Hello-World"
    let range1 = str.characters.index(str.startIndex, offsetBy: 6)..<str.endIndex
    str = str[range1]
    print("the end time is : \(str)")