我希望能够将输入字符串标记为一个数组(或某种有效的方法,接受建议),这将允许我轻松地解释和更改给定的输入。
例如,假设我们正在处理一个计算器,输入是
55+63.7/7-(6+5)/9+(3-6.5)/(5-2)我需要创建一个数组或一系列标记,如下所示
{"55","+","63.7","/","7","-","(","6","+","5","... }最佳实践?我尝试过研究parseKit和NSScanner,两者似乎都很合理,但如果可能的话,我想要一个例子来缩短让它正常工作所需的时间。
编辑:
本质上,我正在寻找的是一组简单的“解析器”逻辑……
如果我自己构建一个完整的解析器/扫描器,我就可以使用下面的psuedo代码
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
}发布于 2014-08-07 23:58:15
我想你是对的。你想要的是一个简单的、递归的、像样的解析器。我刚刚创建了一个Bencoding解析器,它非常简单。也许你可以得到一些想法
https://stackoverflow.com/questions/14511308
复制相似问题