objective-c 中數據類型之二 字符串(NSString)
阿新 • • 發佈:2017-06-14
option 大小 edas 字符串長度 seq scan 後者 code form
// 1. 聲明一個NSString對象,註意對象前要加‘*’。 NSString *string1; // 賦值方式1,初始化賦值; NSString *string2 = [[NSString alloc] initWithString: @"hello world!"]; // 賦值方式2; string1 = @"hello world!"; string2 = [NSString stringWithString: @"hello world!"]; // 賦值方式3,帶格式賦值,方便有用; string1 = [NSString stringWithFormat: @"Hi, I‘m %@,hello to my world!", @"NSString"]; NSLog(@"%@", string1); // 2. 控制臺輸入一個字符串給string。 char *str = NULL; // 聲明char * 字符串。 str = alloca(20); // 給str分配內存; scanf("%s", str); // 控制臺輸入字符串給str; // 將str賦給NSString對象string; string1 = [NSString stringWithUTF8String: str]; // 輸出string。 NSLog(@"string: %@", string1); // 3. 字符串長度length的使用; if ([string1 length] > 5) { NSLog(@"字符串長度大於5."); } else { NSLog(@"字符串長度不大於5."); } // 4.字符串比較是否相等,isEqualToString返回一個布爾型數據YES\NO; string1 = @"hello world"; string2 = @"hello world"; if ([string1 isEqualToString:string2]) { NSLog(@"%@ 等於 %@", string1, string2); } else { NSLog(@"%@ 不等於 %@", string1, string2); } string1 = @"hello world"; string2 = @"hello worla"; if ([string1 isEqualToString:string2]) { NSLog(@"%@ 等於 %@", string1, string2); } else { NSLog(@"%@ 不等於 %@", string1, string2); } // 註:這裏 isEqualToString: 不同於 ==。前者比較是否等價。後者比較指針數值,是否是同一對象; // 5. 字符串比較大小。 // 5.1 區分大寫和小寫的比較compare:返回NSComparisonResult(enum)型數據, // 小於返回NSOrderedAscending(值為-1),等於返回NSOrderedSame(值為0)。大於返回NSOrderedDescending(值為1); string1 = @"hello worlD"; // hello worlD 小於 hello world; string2 = @"hello world"; string2 = @"hello world"; // hello world 等於 hello world; string2 = @"hello world"; string2 = @"hello world"; // hello worle 大於 hello world; string2 = @"hello world"; if ([string1 compare:string2] == NSOrderedSame) { NSLog(@"%@ 等於 %@", string1, string2); } else if ([string1 compare:string2] == NSOrderedAscending){ NSLog(@"%@ 小於 %@", string1, string2); } else if ([string1 compare:string2] == NSOrderedDescending){ NSLog(@"%@ 大於 %@", string1, string2); } // 5.2 高級比較compare:options:返回NSComparisonResult(enum)型數據。小於返回-1。等於返回0。大於返回1; // options: NSCaseInsensitiveSearch不區分大寫和小寫;NSLiteralSearch區分大寫和小寫。NSNumericSearch比較字符串的字符個數; string1 = @"hello worlDa"; string2 = @"hello world"; // 不區分大寫和小寫,比較字符串的字符個數; if ([string1 compare:string2 options:NSCaseInsensitiveSearch | NSNumericSearch] == NSOrderedSame) { NSLog(@"%@ 等於 %@", string1, string2); } else if ([string1 compare:string2 options:NSCaseInsensitiveSearch | NSNumericSearch] == NSOrderedAscending){ NSLog(@"%@ 小於 %@", string1, string2); } else if ([string1 compare:string2 options:NSCaseInsensitiveSearch | NSNumericSearch] == NSOrderedDescending){ NSLog(@"%@ 大於 %@", string1, string2); } // 6. 字符串的連接; NSString* string; // 結果字符串,將string1和string2連接起來 //方法1. string1 = @"hello "; string2 = @"world"; string = [[NSString alloc]initWithFormat:@"%@%@", string1, string2]; // 字符之間不加逗號; NSLog(@"string1: %@", string1); // 輸出string1; NSLog(@"string2: %@", string2); // 輸出string2; NSLog(@"string: %@", string); // 輸出string; //方法2. // 將string1與string2合並後賦給string; string1 = @"game "; string2 = @"start"; NSLog(@"將string1與string2合並後賦給string前:"); NSLog(@"string1: %@", string1); // 輸出string1。 NSLog(@"string2: %@", string2); // 輸出string2; NSLog(@"string: %@", string); // 輸出string。 string = [string1 stringByAppendingString:string2]; NSLog(@"將string1與string2合並後賦給string後:"); NSLog(@"string1: %@", string1); // 輸出string1。 NSLog(@"string2: %@", string2); // 輸出string2。 NSLog(@"string: %@", string); // 輸出string; //方法3. // 將string1, string2加到string的後面; string = @"this "; string1 = @"game "; string2 = @"over"; NSLog(@"將string1, string2加到string的後面前:"); NSLog(@"string: %@", string); // 輸出string; NSLog(@"string1: %@", string1); // 輸出string1; NSLog(@"string2: %@", string2); // 輸出string2; string = [string stringByAppendingFormat:@"%@%@", string1, string2]; // 字符之間不加逗號; NSLog(@"將string1, string2加到string的後面後:"); NSLog(@"string: %@", string); // 輸出string; // 7. 字符串的查找。是否以一個字符串開頭hasPrefix:。是否以一個字符串結尾hasSuffix:,是否包括字符串rangeOfString:。 NSRange range; string = @"jingchagushi_chapter.rmvb"; string1 = @"jing"; string2 = @"rmvb"; if ([string hasPrefix:string1]) { NSLog(@"%@ 的開頭是%@",string, string1); } if ([string hasSuffix:string2]) { NSLog(@"%@ 的結尾是%@",string, string2); } range = [string rangeOfString:@"ch"]; NSLog(@"位置%lu,長度%lu", range.location, range.length);
objective-c 中數據類型之二 字符串(NSString)