gpt4 book ai didi

iOS DDMathParser 获取编号 'Blocks'

转载 作者:行者123 更新时间:2023-11-29 13:20:42 24 4
gpt4 key购买 nike

我正在使用 DDMathParser 为 iOS 构建一个计算器应用程序。 我想知道如何将像 5+900/32 这样的表达式 (NSString) 分隔成单独的数值:590032 我更愿意将它们放在 NSArray 或其他相对有用的列表对象中。我听说使用 DDMathParser 有一种简单的方法可以做到这一点 - 这就是我从 GCMathParser 切换的原因。

最佳答案

DDMathParser 作者在这里。

是的,这很简单,有几种方法可以实现。如果您只想知道数字是什么而不关心运算符,则可以使用 tokenizing应用程序接口(interface):

NSError *tokenizingError = nil;
DDMathStringTokenizer *tokenizer = [DDMathStringTokenizer tokenizerWithString:@"5+900/32" error:&tokenizingError];
NSArray *tokens = [tokenizer tokens];

NSMutableArray *numbers = [NSMutableArray array];
for (DDMathStringToken *token in tokens) {
if ([token tokenType] == DDTokenTypeNumber) {
[numbers addObject:[token numberValue]];
}
}

// numbers now is @[ @5, @900, @32 ];

但是,这种方法有一个警告,这个例子可以很好地说明这一点:@"-42"。 DDMathParser 中的标记始终被解析为无符号 数字,因为前面的减号实际上是一个运算符,并且根据其他运算符的不同而有所不同。这意味着如果您对字符串 @"-42" 进行分词,您将看到它包含两个 分词:一个否定运算符和数字 42。

关于iOS DDMathParser 获取编号 'Blocks',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14417462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com