1

我有一个字符串格式的数学方程。

有没有办法将@“+”(字符串常量)直接转换为目标 C 中的加法运算符或

我必须使用 If-Else 语句来解决这个等式??

4

3 回答 3

3
NSPredicate * parsed = [NSPredicate predicateWithFormat:@"123+456+678-985 = 0"];
NSExpression * left = [(NSComparisonPredicate *)parsed leftExpression];
NSNumber * result = [left expressionValueWithObject:nil context:nil];
float i = [result floatValue];
于 2013-07-29T17:26:58.500 回答
0
if([yourString isEqualToString:@"+"])
{
     //Do something

}

这段代码应该可以工作。

于 2013-07-29T17:19:03.180 回答
0

您可以使用 NSExpression 来实现这一点

NSString *expressionFormat = [NSString stringWithFormat:@"(%d %@ %d)",firstNumber,arcthimaticOperator,secondNumber];
NSExpression *expression = [NSExpression expressionWithFormat:expressionFormat];
NSNumber *result = [expression expressionValueWithObject:nil context:nil];
NSLog(@"%@", result);

请确保输入正确的格式,否则上述代码将引发异常。

于 2014-12-02T10:23:15.037 回答