- NSString *string = @"Product: Acme Potato Peeler; Cost: 0.98 73\nProduct: Chef Pierre Pasta Fork; Cost: 0.75 19\nProduct: Chef Pierre Colander; Cost: 1.27 2\n";
- NSCharacterSet *semicolonSet;
- NSScanner *theScanner;
- NSString *PRODUCT = @"Product:";
- NSString *COST = @"Cost:";
- NSString *productName;
- float productCost;
- NSInteger productSold;
- semicolonSet = [NSCharacterSet characterSetWithCharactersInString:@";"];
- theScanner = [NSScanner scannerWithString:string];
- while ([theScanner isAtEnd] == NO)
- {
- if ([theScanner scanString:PRODUCT intoString:NULL] &&
- [theScanner scanUpToCharactersFromSet:semicolonSet
- intoString:&productName] &&
- [theScanner scanString:@";" intoString:NULL] &&
- [theScanner scanString:COST intoString:NULL] &&
- [theScanner scanFloat:&productCost] &&
- [theScanner scanInteger:&productSold])
- {
- NSLog(@"Sales of %@: $%1.2f", productName, productCost * productSold);
- }
- }
Scans the string until a given string is encountered, accumulating characters into a string that’s returned by reference.
(从当前位置开始,根据指定的字符串扫描,直到找到指定的字符串停止(不不会指定的字符串),返回从当前位置开始到指定字符串之间的字符串,并赋值给(stringValue)这个参数)
- (BOOL)scanUpToString:(NSString *)stopString intoString:(NSString **)stringValue
Scans a given string, returning an equivalent string object by reference if a match is found.
(跳过指定的字符串) stringValue中的值和string 中的一样
- (BOOL)scanString:(NSString *)string intoString:(NSString **)stringValue