我希望能够将输入字符串标记为数组(或一些有效的方法,接受建议),这将使我能够轻松地解释和更改给定的输入。
例如,假设我们正在处理一个计算器,输入是
55+63.7/7-(6+5)/9+(3-6.5)/(5-2)
我需要创建一个数组或一系列令牌,就像
{"55","+","63.7","/","7","-","(","6","+","5","... }
最佳实践?我试过研究 parseKit 和 NSScanner,两者看起来都非常合理,但如果可能的话,我想要一个例子来缩短让这个东西正常工作所需的时间。
编辑:
基本上我正在寻找的是一组简单的“解析器”逻辑......
如果我要自己构建一个完整的解析器/扫描器,我可以使用类似的伪代码
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
}