我有一个类似
的字符串“条件: 某些文字可以包含逗号但不总是 ,输入 more text
产品: 更多文字,有时可以为NULL
我做的是:
NSString *condition = @"Condition:";
NSString *type = @", Type";
NSString *product = @"Product:";
NSScanner *scanner = [NSScanner scannerWithString:myString];
[scanner scanString:condition intoString:NULL];
[scanner scanUpToString:type intoString &conditionName];
[scanner scanUpToString:type intoString:NULL];
[scanner scanUpToString:product intoString:&typeName];
[scanner scanString:product intoString:NULL];
// stuck here
我不知道如何扫描直到字符串的结尾,因为scanString:intoString:采用NSString参数。我不知道如何将这些放入while循环中,直到扫描结束。有什么想法吗?感谢。
答案 0 :(得分:0)
大概:
while (![scanner isAtEnd]) {
[scanner scanString:condition intoString:NULL];
[scanner scanUpToString:type intoString:&conditionName];
[scanner scanString:type intoString:NULL];
[scanner scanUpToString:product intoString:&typeName];
[scanner scanString:product intoString:NULL];
[scanner scanUpToString:condition intoString:&productName];
// do something with read variables
}
来自文档:
如果扫描器的源字符串中不存在搜索字符串(stopString),则源字符串的其余部分将放入stringValue中,接收者的scanLocation将前进到源字符串的末尾,并且该方法返回YES。
因此,您应该在字符串末尾再次扫描condition
以进行下一次循环迭代。