长话短说,我正在尝试将输入字符串解析为“ token ”......
我可以完全控制 token 的放置位置,我可以使用 NSLog 并查看我的输入字符串的格式是否完全正确(甚至直到尝试 token 化之前的那一刻)。
为了讨论的目的,我正在构建一个简单的计算器,它可以理解输入,对其进行 RPN,然后我遇到的问题是标记化和评估。
无论如何,假设我的输入字符串是
55:6:+:3:+:9:3:/:-
插入“:”是为了在每个“标记”之间有目的地创建分隔符。然后我尝试做类似的事情
NSArray *chunks = [input componentsSeparatedByString:@":"];
这总是会失败。如果我尝试“sizeof”,我在数组上始终会得到 4,即使它显然应该是 9....
想法?
最佳答案
正如我在这里测试的那样,该方法适用于您的输入。您不能使用 sizeof() 来检查 NSArray 中的元素数量。 NSArray 指针的 sizeof 为您提供指针的大小,该大小为 4 字节或 8 字节,具体取决于您使用的是 32 位还是 64 位机器。它不是 NSArray 中对象的数量。如果你想检查 NSArray 中对象的数量,请使用 count 方法。
关于ios - 使用 ComponentsSeparatedByString 的 Tokenizer 给出不正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14494477/