0

我正在尝试找到一种从 NSString 计算结果的方法。有没有简单的 NSString 计算器类别?

NSString *str = @"10+20/2";
int result = [[str stringByCalculatingResult] intValue];
NSLog (@"result:%i", result);

首选输出:

result:20

谢谢你的解决方案。

类别:

//NSString+Calculator.h
@interface NSString (Calculator)
- (NSString*)stringByCalculatingResult;
@end

//NSString+Calculator.m
@implementation NSString (Calculator)
- (NSString*)stringByCalculatingResult
{
    NSExpression *expression = [NSExpression expressionWithFormat:self];
    NSNumber *value = [expression expressionValueWithObject:nil context:nil];
    return [value stringValue];
}
@end
4

2 回答 2

2

您应该考虑使用NSExpression可以为您评估数学表达式的类:

NSExpression *expression = [NSExpression expressionWithFormat:@"10 + 20 / 2"];
id value = [expression expressionValueWithObject:nil context:nil];
于 2013-07-30T13:42:45.297 回答
0

你可以看看这个数学解析器库

于 2013-07-30T13:44:42.687 回答