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

Van*_*dal 13 string character swift

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

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

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

website.removing(charactersOf: "https://")
Run Code Online (Sandbox Code Playgroud)

它删除了https://部分,但它也从文本中删除了所有h,所有t,:等等.

我怎样才能删除第一个字符?

}

Gef*_*ish 21

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

let myString = "Hello World"
myString.dropFirst(6)
//World
Run Code Online (Sandbox Code Playgroud)

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


Ala*_* T. 13

为什么不 :

let stripped = String(website.characters.dropFirst(6))
Run Code Online (Sandbox Code Playgroud)

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

(它不适用于多个char emojis或者不在意)

[编辑] Swift 4使这更短:

let stripped = String(website.dropFirst(6))
Run Code Online (Sandbox Code Playgroud)


Nee*_*u M 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 ""
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 在此输入图像描述

  • 你试过表情符号吗?"".toLengthOf(长度:1)将是"" (2认同)