【发布时间】:2023-03-08 15:23:01
【问题描述】:
文本字段包含数学表达式,例如:12+45-6 是否可以将此字符串转换为数字?
我们可以使用谓词工具吗?
NSString *foo = @"((a*b)/c+(d/5))+15";
// dummy predicate that contains our expression
NSPredicate *pred = [NSPredicate predicateWithFormat:[foo stringByAppendingString:@" == 42"]];
NSExpression *exp = [pred leftExpression];
NSNumber *result = [exp expressionValueWithObject:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:4], @"a",[NSNumber numberWithInt:7], @"b",[NSNumber numberWithInt:2], @"c",[NSNumber numberWithInt:20], @"d",nil]context:nil];
NSLog(@"%@", result); // logs "33"<br/>
【问题讨论】:
-
仅供参考 - 也有这样的讨论:stackoverflow.com/questions/6809655/…
-
“请发送 codez”在 SO 是不受欢迎的。只是说。
标签: objective-c cocoa math expression string-parsing