【问题标题】:Remove the first six characters from a String (Swift)从字符串中删除前六个字符(Swift)
【发布时间】:2017-09-09 01:52:46
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

标签: swift string character


【解决方案1】:

在 Swift 4 中真的很简单,只需使用 dropFirst(n: Int)

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

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

【讨论】:

  • 我必须创建一个新字符串并将dropFirst 的结果传递给它的构造函数以使其编译。
【解决方案2】:

为什么不:

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

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

(请注意,它不适用于多字符表情符号)

[编辑] Swift 4 使这更短:

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

【讨论】:

  • 太棒了,经过大量的研发,我找到了最好的解决方案,谢谢。 :)
【解决方案3】:

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 ""
            }
        }
}

【讨论】:

  • 你试过表情符号吗? "?‍?‍?‍?".toLengthOf(length: 1) 将是 "?‍"
  • @Kubba 这也适用于表情符号。在您的情况下,输出将是“”。
  • 编辑后 - 现在输出:"12".toLengthOf(length: 1) // 2, "?‍?‍?‍?".toLengthOf(length: 1) // "?‍?‍?"
  • @Kubba 我已经添加了你的场景的屏幕截图。请看一看。
  • @Kubba 这不适用于由多个表情符号组成的表情符号,因为普通表情符号仅包含一个字符,而您提到的表情符号包含多个字符。但我认为它适用于问题中提出的场景。
【解决方案4】:

它将从字符串中删除前 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)")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    • 2011-07-05
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多