Ios 如何遍历字符串数组并在Swift中获取子字符串?

Ios 如何遍历字符串数组并在Swift中获取子字符串?,ios,arrays,swift,swift3,substring,Ios,Arrays,Swift,Swift3,Substring,首先,我觉得我的要求是不同的,这就是为什么我问这个问题,但标记重复,如果必要的话 现在,我有一个字符串数组,如下所示: ["January 27, 5:00PM - 10:00PM", "February 28, 11:00AM - 10:00PM", "March 29, 11:00AM - 9:00PM"] 我知道如何只提取每个索引的日期部分,如下所示: for index in 0..<array.count { if let range = array[index].ra

首先,我觉得我的要求是不同的,这就是为什么我问这个问题,但标记重复,如果必要的话

现在,我有一个字符串数组,如下所示:

["January 27, 5:00PM - 10:00PM", "February 28, 11:00AM - 10:00PM", "March 29, 11:00AM - 9:00PM"]
我知道如何只提取每个索引的日期部分,如下所示:

for index in 0..<array.count
{
    if let range = array[index].range(of: ",")
    {
        date = array[index][array[index].startIndex..<range.lowerBound]
    }
}
结果:
月=一月
日=27
,等等

然而,我觉得这是混乱的,不干净。另外,我还需要从
月份中提取前3个字符

var months = [String]()
var days = [String]()
var array = ["January 27, 5:00PM - 10:00PM", "February 28, 11:00AM - 10:00PM", "March 29, 11:00AM - 9:00PM"]

array.forEach() {
    let monthAndDay = $0.components(separatedBy: ",")

    let dateFormatter = DateFormatter()

    dateFormatter.dateFormat = "MMM dd"
    let date = dateFormatter.date(from: monthAndDay.first!)

    let dateFormatterMonth = DateFormatter()
    dateFormatterMonth.dateFormat = "MMM"
    months.append(dateFormatterMonth.string(from: date!))

    let dateFormatterDay = DateFormatter()
    dateFormatterDay.dateFormat = "dd"
    days.append(dateFormatterDay.string(from: date!))
}

print(months) // Jan, Fer, Mar
print(days) // 27, 28, 29

您可以将自己的<代码>字符串作为日期/时间解析,但是您应该考虑查看可用的现有日期和时间API;请参见和。为什么不解析日期(它们看起来都一样)并从结果日期中获取日期组件(月或日期)?正如Leo和drfi所建议的,我做了一些非常类似的事情,但会将您的标记为已接受的答案
var months = [String]()
var days = [String]()
var array = ["January 27, 5:00PM - 10:00PM", "February 28, 11:00AM - 10:00PM", "March 29, 11:00AM - 9:00PM"]

array.forEach() {
    let monthAndDay = $0.components(separatedBy: ",")

    let dateFormatter = DateFormatter()

    dateFormatter.dateFormat = "MMM dd"
    let date = dateFormatter.date(from: monthAndDay.first!)

    let dateFormatterMonth = DateFormatter()
    dateFormatterMonth.dateFormat = "MMM"
    months.append(dateFormatterMonth.string(from: date!))

    let dateFormatterDay = DateFormatter()
    dateFormatterDay.dateFormat = "dd"
    days.append(dateFormatterDay.string(from: date!))
}

print(months) // Jan, Fer, Mar
print(days) // 27, 28, 29