NSCharacterSet使用方法

来源:互联网 发布:网络信息安全标语 编辑:程序博客网 时间:2024/05/18 02:04
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.- (void)viewDidLoad{    [super viewDidLoad];        [self test];        // Reference output...dumpCharacterSet( @"alphanumericCharacterSet" );dumpCharacterSet( @"controlCharacterSet" );dumpCharacterSet( @"decimalDigitCharacterSet" );dumpCharacterSet( @"decomposableCharacterSet" );dumpCharacterSet( @"illegalCharacterSet" );dumpCharacterSet( @"letterCharacterSet" );dumpCharacterSet( @"lowercaseLetterCharacterSet" );dumpCharacterSet( @"nonBaseCharacterSet" );dumpCharacterSet( @"punctuationCharacterSet" );dumpCharacterSet( @"uppercaseLetterCharacterSet" );dumpCharacterSet( @"whitespaceAndNewlineCharacterSet" );dumpCharacterSet( @"whitespaceCharacterSet" );}- (void)test{    // Set up for reading testString    NSString *testString = @"Los Angeles;8.25;0.580561574;1,Tokyo;1.9;0.643872234;1;Honolulu,0;0;0;Toronto;7.9;5.3322;3;";    // Parse CSV with NSScanner    NSScanner *myScanner = [NSScanner scannerWithString:testString];        NSString    *location;    float        theRevenue;    float        thePercent;    int            theRank;        // Set up data delimiter using semicolon//分号        NSCharacterSet *CharacterSet;        //Returns a character set containing the characters in a given string.    CharacterSet = [NSCharacterSet characterSetWithCharactersInString:@";,"];        // Double check scanner string    NSLog (@"Scanner string\n");        //Returns the string with which the receiver was created or initialized.    NSLog (@"%@",[myScanner string]);        // scanner loop start    while ([myScanner isAtEnd] == NO) {                if ( [myScanner scanUpToCharactersFromSet:CharacterSet intoString:&location] ) {            NSLog (@"%@",location);        }                        // Skipping the ; and ,delimiter        if([myScanner scanString:@";" intoString:NULL] || [myScanner scanString:@"," intoString:NULL])            ;        // Read Revenue data up to ; delimiter and skipping        //Scans for a float value, returning a found value by reference.        if([myScanner scanFloat:&theRevenue])            NSLog(@"%lf",theRevenue);        if([myScanner scanString:@";" intoString:NULL] || [myScanner scanString:@"," intoString:NULL])            ;                // Read Percentage data up to ; delimiter and skipping        if([myScanner scanFloat:&thePercent])            NSLog(@"%lf",thePercent);        if([myScanner scanString:@";" intoString:NULL] || [myScanner scanString:@"," intoString:NULL])            ;                // Read Ranking data up to ; delimiter and skipping        if([myScanner scanInt:&theRank])            NSLog(@"%i",theRank);        if([myScanner scanString:@";" intoString:NULL] || [myScanner scanString:@"," intoString:NULL])            ;    }            }void dumpCharacterSet( NSString *name ){unichar idx;NSCharacterSet *cset = [NSCharacterSet performSelector: NSSelectorFromString(name)];    printf("Character set (0-127): %s\n7-Bit: ", [name UTF8String]);    for( idx = 0; idx < 256; idx++ ){if ( 128 == idx ) {printf( "\n8-Bit: " );}                //Returns a Boolean value that indicates whether a given character is in the receiver.if ([cset characterIsMember: idx]){            //判断字符c是否为可打印字符(含空格)if ( isprint(idx) ) {printf( "%c ", idx);}else {printf( "%02x ", idx);}}}printf("\n\n");}

0 0