【发布时间】:2013-08-18 22:43:42
【问题描述】:
我想在字符“=”之后过滤字符串。例如,如果 8+9=17 我的输出应该是 17。我可以使用 NSScanner 在“=”之前过滤字符,如何反转?我需要一种有效的方法来做到这一点,而不使用 componentsSeparatedByString 或创建一个数组
【问题讨论】:
-
componentsSeparatedByString是(在我的看来)最常被滥用的方法之一。为什么要创建数组?rangeOfString+substringFromIndex不是更直接吗?但是 SO 回答者和读者似乎喜欢它! - 对不起,我不得不说一次。 -
Martin R 是对的,但我不确定 rangeOfString 选项如何更好。我建议通过按答案下方的复选标记来接受@rmaddy 的答案而不是我的答案。
-
您能解释一下为什么您对提议的解决方案不满意(例如,使用
componentsSeparatedByString)吗? -
当你只想要一个字符串的一部分时,这是非常低效的。我标记为最佳答案的那个是最好的描述。在我的要求中,我有一个像 8+9=+9-7=19 这样的日志,我只需要从此类日志数组中过滤 19 个。
-
试试这个 NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"]; NSString* day = [foo objectAtIndex: 0];