首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSScanner到NSArray输入计算

NSScanner到NSArray输入计算
EN

Stack Overflow用户
提问于 2013-01-25 05:40:34
回答 1查看 139关注 0票数 0

我希望能够将输入字符串标记为一个数组(或某种有效的方法,接受建议),这将允许我轻松地解释和更改给定的输入。

例如,假设我们正在处理一个计算器,输入是

代码语言:javascript
复制
  55+63.7/7-(6+5)/9+(3-6.5)/(5-2)

我需要创建一个数组或一系列标记,如下所示

代码语言:javascript
复制
 {"55","+","63.7","/","7","-","(","6","+","5","... }

最佳实践?我尝试过研究parseKit和NSScanner,两者似乎都很合理,但如果可能的话,我想要一个例子来缩短让它正常工作所需的时间。

编辑:

本质上,我正在寻找的是一组简单的“解析器”逻辑……

如果我自己构建一个完整的解析器/扫描器,我就可以使用下面的psuedo代码

代码语言:javascript
复制
 char c
 NSMutableString temp
 NSMutableArray parsed 
 For each c in input {
    if is_number(c)
       while is_number(c)
          add c to temp
       parsed addObject:temp
       reset temp
    if is_operation(c) //single character operations like +, -, /, 
       add c to temp 
       parsed addObject:temp
       reset temp
    if is_letter(c)
       while is_letter(c)
          add c to temp
       if is_keyword(temp) //like sin, cos, tan
           parsed addObject:temp
       else
           input misunderstood //not necessary, really, just useful
       reset temp
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-07 23:58:15

我想你是对的。你想要的是一个简单的、递归的、像样的解析器。我刚刚创建了一个Bencoding解析器,它非常简单。也许你可以得到一些想法

https://github.com/mmick66/KDBencoding

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14511308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档