首页 > 解决方案 > 按位置从字符串中删除字符

问题描述

我想从字符串中按位置删除两个字符,形成示例我想从subCadenaTX4位置 4 和 5删除字符

let fechaNacRFC = "25/12/1997"
let subCadenaTX4 = fechaNacRFC!.replacingOccurrences(of: "/", with: "", options: NSString.CompareOptions.literal, range: nil)
print(subCadenaTX4) // It will be 25121997

我读到我可以使用removeAtIndex但在这种情况下它是什么方式?

我的预期输出:251297

标签: swift

解决方案


我认为通过使意图更清晰,而不是使用字符串索引来更清楚地表达这段代码。

这也为您提供了一种自然的方式来验证输入的格式是否有效。

import Foundation

// You can cache and reuse these 
let parser = DateFormatter()
parser.dateFormat = "dd/MM/yyyy"
let formatter = DateFormatter()
formatter.dateFormat = "ddMMyy"


let input = "25/12/1997"
guard let date = parser.date(from: input) else {
    // TODO: handle error here properly.
    fatalError("The input wasn't in the expected format!")
}
let output = formatter.string(from: date)

print(output) // => 251297

想象一下,如果日期源改变了它的格式,比如 ISO 8601,为你的系统提供数据"1997-12-25""/"假设您通过首先替换为"",然后删除第 4 个和第 5 个字符来实现您的转换。你的系统只会默默地接受这个无效的输入,然后悄悄地吐出"19972-25",没有任何迹象表明发生了错误。

使用这种方法,输入格式得到了简单的验证,你会发现像这样的无意义的错误,而不是默默地错误的数据。


推荐阅读