我有一个字符串格式的数学方程。
有没有办法将@“+”(字符串常量)直接转换为目标 C 中的加法运算符或
我必须使用 If-Else 语句来解决这个等式??
我有一个字符串格式的数学方程。
有没有办法将@“+”(字符串常量)直接转换为目标 C 中的加法运算符或
我必须使用 If-Else 语句来解决这个等式??
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];
if([yourString isEqualToString:@"+"])
{
//Do something
}
这段代码应该可以工作。
您可以使用 NSExpression 来实现这一点
NSString *expressionFormat = [NSString stringWithFormat:@"(%d %@ %d)",firstNumber,arcthimaticOperator,secondNumber];
NSExpression *expression = [NSExpression expressionWithFormat:expressionFormat];
NSNumber *result = [expression expressionValueWithObject:nil context:nil];
NSLog(@"%@", result);
请确保输入正确的格式,否则上述代码将引发异常。