使用字符串作为字符数组

Mal*_*ion 1 objective-c

我在使用表示为字符数组的字符串时遇到了一些麻烦.正如我在java中所做的那样,我想做的是以下内容:

     while (i < chars.length) {
        char ch = chars[i];
        if ((WORD_CHARS.indexOf(ch) >= 0) == punctuation) {

            String token = buffer.toString();
            if (token.length() > 0) {
                parts.add(token);
            }
            buffer = new StringBuffer();

        }
        buffer.append(ch);
        i++;
    }
Run Code Online (Sandbox Code Playgroud)

我正在做的是这样的:

while(i < strlen(chars)) {

    char ch = chars[i];
    if(([WORD_CHARS rangeOfString:ch] >= 0) == punctuation) {

        NSString *token = buffer.toString();
        if([token length] > 0) {
            [parts addObject:token];
        }
        buffer = [NSMutableString string];
    }
    [buffer append(ch)];
    i++;
}
Run Code Online (Sandbox Code Playgroud)

我不确定我应该怎么转换

 String token = buffer.toString();
Run Code Online (Sandbox Code Playgroud)

到目标c,其中buffer是NSMutableString.另外,如果目标c中的条件如何,我该如何检查?

if ((WORD_CHARS.indexOf(ch) >= 0) == punctuation) 
Run Code Online (Sandbox Code Playgroud)

WORD_CHARS是一个NSString.我也无法将ch附加到缓冲区.

任何帮助是极大的赞赏.

Joa*_*son 6

有时逐行翻译不是最好的方法.

如果chars是的话,我会做更类似于这个(未经测试的)代码的事情NSString;

NSCharacterSet *punctuation = 
    [NSCharacterSet characterSetWithCharactersInString:@"<your separators>"];
NSArray *parts = [chars componentsSeparatedByCharactersInSet:punctuation];
Run Code Online (Sandbox Code Playgroud)

这应该留下parts一个NSArray的NSStrings包含你的原始NSString分裂标点符号.