Ios 如何过滤出第7个字符为冒号的数组对象?

Ios 如何过滤出第7个字符为冒号的数组对象?,ios,arrays,swift,filter,Ios,Arrays,Swift,Filter,编辑:谢谢大家!为了让未来的生活更轻松,我想我会尝试按照一些人的建议,将字符串转换成单独的信息片段。我是一个初学者程序员,所以学习如何做对我来说也是一件好事。再次感谢 主要问题:如何添加第二个过滤器来选择第7个字符为冒号的数组字符串 解释:好的,这是非常具体的,但是我需要设置一个数组过滤器,如果冒号在某个点上,它将能够拉出某些字符串。我正在创建一个基于数组的随机剧集生成器,其中剧集记录为“EP:”即“EP102:酷剧集”。用户还可以选择他们想观看的季节。这是通过过滤包含“EP(specified

编辑:谢谢大家!为了让未来的生活更轻松,我想我会尝试按照一些人的建议,将字符串转换成单独的信息片段。我是一个初学者程序员,所以学习如何做对我来说也是一件好事。再次感谢

主要问题:如何添加第二个过滤器来选择第7个字符为冒号的数组字符串

解释:好的,这是非常具体的,但是我需要设置一个数组过滤器,如果冒号在某个点上,它将能够拉出某些字符串。我正在创建一个基于数组的随机剧集生成器,其中剧集记录为“EP:”即“EP102:酷剧集”。用户还可以选择他们想观看的季节。这是通过过滤包含“EP(specifiedSeasonNumber)”的插曲字符串,并仅从中选取。问题是,当一个节目有9个以上的季节时,例如,当从第10季中挑选时,程序将从不止指定的季节中挑选一些。例如,如果从标为EP1014的S10中选择,也可以选择来自S1的前9集,因为它们包含EP10(完整:EP105)

我的理论解决方案是,如果季号>=10,则添加另一个过滤器,以确保冒号是字符串中的第7个字符,因为对于少于10季的剧集字符串,这将不正确

现有筛选器:

selectFriendsSeasons = epFriends.filter { $0.contains("EP\(seasonNum)")}

请随时进一步询问有关情况的问题。谢谢大家!

您真的应该使用结构来表示情节,而不是使用字符串

您可以使用以下方法检查冒号位置:

$0.index(of: ":") == $0.index($0.startIndex, offsetBy: 6)

如果您不愿意创建一个适当的
struct
,以便更轻松地对数据进行建模,那么我建议您改变以2位数而不是1位数编码季节的方式。这样,您的筛选语句将如下所示:

let seasonNumString = String(seasonNum)
let formattedSeasonNumString: String = seasonNum > 10 ? seasonNumString : "0" + seasonNumString
selectFriendsSeasons = epFriends.filter { $0.contains(formattedSeasonNumString)}

如果您将字符串预处理为具有季号、集号和标题属性的结构,效果会更好。然后你可以更容易地过滤、排序和搜索你的结构数组。这就是我最终想要的,谢谢。我将把它标为答案。然而,我想我可能会研究structs,因为我以前从未听说过,我是一个相当初级的水平。谢谢哦,我花了一点时间才明白,但这肯定是需要研究的,因为我也在考虑将其作为一种选择。非常感谢。