Objective C - 在任何非alpha字符上拆分字符串

时间:2015-01-15 08:39:18

标签: objective-c split nsstring nsarray expression


我正在使用数学解析器来评估和计算公式,这些公式可以包含数百个数组中的任何变量,我需要做的是从公式字符串中获取变量名的数组(这只会由alpha字符组成)这样我就可以在解析表达式之前找到合适的值。

我有一个如下公式:

PARAMONE*(1+((PARAMTWO-1)/30))^(PARAMTHREE+1)

我想要形成的是NSArray [PARAMONE, PARAMTWO, PARAMTHREE],但无法弄清楚如何删除和拆分公式来实现这一点。

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:4)

这将按照您的描述进行操作

NSString *formula = @"PARAMONE*(1+((PARAMTWO-1)/30))^(PARAMTHREE+1)";

//  A character set containing everything but the letters
NSCharacterSet *splitCharacterSet = [[NSCharacterSet letterCharacterSet] invertedSet];

NSMutableArray *words = [[formula componentsSeparatedByCharactersInSet:splitCharacterSet] mutableCopy];

//  Remove any empty strings as a result of the split
[words removeObject:@""];

NSLog(@"%@", words);