【问题标题】:Swift 3: stringByReplacingCharactersInRange alternativesSwift 3:stringByReplacingCharactersInRange 替代品
【发布时间】:2016-10-19 06:13:04
【问题描述】:

你们中有人知道要在 Swift 3 中使用的 stringByReplacingCharactersInRange 吗?

我正在尝试将此Objective-C 转换为Swift

strToSort = [strToSort stringByReplacingCharactersInRange:NSMakeRange((i-1),1) withString: [strToSort substringWithRange:NSMakeRange((i),1)]];

非常感谢您的帮助。

【问题讨论】:

    标签: objective-c swift string range swift3


    【解决方案1】:

    在 Swift 3 中是这样。

    strToSort = strToSort.replacingCharacters(in: range, with: str)
    

    注意:这里的范围是 Swift Range<String.Index> 对象的类型,而不是 NSRange

    有关Range的更多详细信息,请查看Apple Documentation

    例如:

    let str = "Apple"
    let i = 3
    let range = str.index(str.startIndex, offsetBy: i-1)..<str.index(str.startIndex, offsetBy: i)
    let subStringRange = str.index(str.startIndex, offsetBy: i)..<str.index(str.startIndex, offsetBy: i+1)
    print(str.replacingCharacters(in: range, with: str.substring(with: subStringRange)))
    

    输出:

    Aplle
    

    【讨论】:

    • 我创建的范围如下 let rangeOne = strToSort.index(strToSort.startIndex, offsetBy: (i-1))。但我收到此错误:错误:无法将类型“String.Index”(又名“String.CharacterView.Index”)的值转换为预期的参数类型“Range”(又名“Range')
    • @user2924482 我不知道你问过如何设置范围,但昨天我不知道为什么有人投了反对票,然后我显示了你的评论,所以我编辑了我的答案以供将来参考。
    【解决方案2】:

    快速方法,使用 NSString

    let strToSort: NSString = "string to sort" let newString = strToSort.replacingCharacters(in: NSMakeRange(0, 6), with: "") print(newString) // to sort

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      • 2020-12-25
      • 2013-04-14
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多