我需要一种方法来删除字符串的第一个字符,这是一个空格。我正在寻找一个方法,甚至是一个扩展的字符串类型,我可以用来削减字符串的字符。


当前回答

斯威夫特3

你可以简单地使用这个方法删除字符串中的所有普通空格(不考虑所有类型的空白):

let myString = " Hello World ! "
let formattedString = myString.replacingOccurrences(of: " ", with: "")

结果将是:

HelloWorld!

其他回答

羽毛球猫的答案的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: "")
    }
}

斯威夫特5 + 从字符串的前缀(开始)删除所有空白,你可以使用类似的后缀/字符串的结束

 extension String {
    func deletingPrefix(_ prefix: String) -> String {
      guard self.hasPrefix(prefix) else { return self }
      return String(self.dropFirst(prefix.count))
    }
    
    func removeWhitespacePrefix() -> String {
     let prefixString = self.prefix(while: { char in
        return char == " "
      })
      return self.deletingPrefix(String(prefixString))
    }
  }

斯威夫特3

你可以简单地使用这个方法删除字符串中的所有普通空格(不考虑所有类型的空白):

let myString = " Hello World ! "
let formattedString = myString.replacingOccurrences(of: " ", with: "")

结果将是:

HelloWorld!

删除字符串中的所有空格:

let space_removed_string = (yourstring?.components(separatedBy: " ").joined(separator: ""))!

嗨,这可能有点晚,但值得一试。这是一个游乐场的文件。你可以让它成为一个字符串扩展名。

这是在Swift 5.3中编写的

方法1:

var str = "\n \tHello, playground       "
if let regexp = try? NSRegularExpression(pattern: "^\\s+", options: NSRegularExpression.Options.caseInsensitive) {
    let mstr = NSMutableString(string: str)
    regexp.replaceMatches(in: mstr, options: [], range: NSRange(location: 0, length: str.count), withTemplate: "")
    str = mstr as String
}

Result: "Hello, playground       "

方法2:

if let c = (str.first { !($0 == " " || $0 == "\t" || $0 == "\n") }) {
    if let nonWhiteSpaceIndex = str.firstIndex(of: c) {
        str.replaceSubrange(str.startIndex ..< nonWhiteSpaceIndex, with: "")
    }
}

Result: "Hello, playground       "