Swift : How to get the string before a certain character?

前端 未结 11 1897
北恋
北恋 2020-12-24 01:45

How do I get the string before a certain character in swift? The code below is how I did it in Objective C, but can\'t seem to perform the same task in Swift. Any tips or su

11条回答
  •  青春惊慌失措
    2020-12-24 02:12

    Swift 5 extensions

    extension String {
        func stringBefore(_ delimiter: Character) -> String {
            if let index = firstIndex(of: delimiter) {
                return String(prefix(upTo: index))
            } else {
                return ""
            }
        }
        
        func stringAfter(_ delimiter: Character) -> String {
            if let index = firstIndex(of: delimiter) {
                return String(suffix(from: index).dropFirst())
            } else {
                return ""
            }
        }
    }
    
    let str = "n1:lolz"
    print(str.stringBefore(":")) // n1
    print(str.stringAfter(":")) // lolz
    
    let str = "n1:"
    print(str.stringBefore(":")) // n1
    print(str.stringAfter(":")) // empty string
    
    let str = "n1+lolz"
    print(str.stringBefore(":")) // empty string
    print(str.stringAfter(":")) // empty string
    

    This should be fine tuned for your needs and edge cases.

提交回复
热议问题