ios中的算术和条件表达式计算器(包含字符串和值)

ios中的算术和条件表达式计算器(包含字符串和值),ios,objective-c,iphone,Ios,Objective C,Iphone,我有三个例子需要计算表达式,例子如下 (x+y+30) ((p==“好”)和&(q==“早上”)| |(r==“10:00”) ((w==“夜间”)和((a+b+30)>100)) 这里x,y,a和b是整数,p,q,r和w是字符串 对于#1,我使用了DDMathParser库,但是对于#2和3,我们不能使用,因为DDMathParser不允许字符串求值 需求是对上述表达式进行求值的任何库或示例源代码,其中包含字符串和值 请帮我评估一下 感谢您的帮助。所有这些都可以使用NSPredicate或NS

我有三个例子需要计算表达式,例子如下

  • (x+y+30)

  • ((p==“好”)和&(q==“早上”)| |(r==“10:00”)

  • ((w==“夜间”)和((a+b+30)>100))

  • 这里
    x
    y
    a
    b
    是整数,
    p
    q
    r
    w
    是字符串

    对于#1,我使用了DDMathParser库,但是对于#2和3,我们不能使用,因为DDMathParser不允许字符串求值

    需求是对上述表达式进行求值的任何库或示例源代码,其中包含字符串和值

    请帮我评估一下


    感谢您的帮助。

    所有这些都可以使用
    NSPredicate
    NSExpression
    进行解析。您可以使用
    @try…@catch
    语句尝试通过
    +[NSPredicate predicateWithFormat:][/code>或
    +[NSExpression expression withformat:][/code>运行它们,并查看哪个语句有效

    完成后,您可以根据
    NSDictionary
    对它们进行评估,并查看结果。例如:

    NSString *formula = @"((w == \"Night\") && ( (a + b +30) >100 ) )";
    NSPredicate *p = [NSPredicate predicateWithFormat:formula];
    NSDictionary *object = @{
                             @"w": @"Night",
                             @"a": @42,
                             @"b": @33
                             };
    
    BOOL passes = [p evaluateWithObject:object];
    NSLog(@"passes: %@", passes ? @"yes" : @"no"); // logs "yes"
    

    如果([p IseQualtString:@“Good”]&([q IseQualtString:@“Morning”]))| |([r IseQualtString:@“10:00”]){}谢谢Dave。我还有一个问题,NSString*formula=@“form\u component\u 1?小写字母?包含(\“boa\”)。其中,form_component_1作为输入变量。我不能断言这一点。请帮我评估一下。