【发布时间】:2016-06-27 23:53:42
【问题描述】:
我的NSArray 包含一周中的某一天,后跟空格和一个数字。数组如下所示:
(
"Monday 1 - Rapids",
"Monday 2 - Durango Shopping",
"Monday - Train"
)
我需要做的是扫描数组中编号最高的数组,然后删除其他所有内容。有什么想法吗?
【问题讨论】:
我的NSArray 包含一周中的某一天,后跟空格和一个数字。数组如下所示:
(
"Monday 1 - Rapids",
"Monday 2 - Durango Shopping",
"Monday - Train"
)
我需要做的是扫描数组中编号最高的数组,然后删除其他所有内容。有什么想法吗?
【问题讨论】:
有多种方法可以做到这一点。
您可以使用componentsSeparatedByString: @" " 将每个项目分解为单词,然后在每个结果数组中获取第二个项目的 intValue。这很容易,但会占用大量临时内存,而且可能会有点慢。
您可以使用 NSScanner 编写代码来提取第一个和第二个空格之间的项目。
您可以编写一个匹配第二个单词的正则表达式,如果它不是数字,则返回一个空房间字符串。 (您可以将该号码设为“捕获组”。)
【讨论】:
步骤 1. 使用componentsSeparatedByString: @" - "
步骤 2. 如果第一项存在,则使用 componentsSeparatedByString: @" " 而不是使用第一项作为密钥
步骤 3. 创建一个 mutabDictionary
step 4. 比较数字并记录最高索引
【讨论】: