2016年12月1日 星期四

NSMutableString replace 字串置換

NSMutableString replace 字串置換方法

!!!Range定義 typedef struct _NSRange { NSUInteger location; NSUInteger length; } NSRange; location其實就是index length表示從index開始幾個字元

...

NSMutableString *myMSstr1; NSMutableString *myMSstr2; myMSstr1 = [NSMutableString stringWithFormat: @"Please don't see."]; // replace a range of chars with another (replace:置換)(將Range範圍內的字元替換) [myMSstr1 replaceCharactersInRange: NSMakeRange(7, 10) withString: @"see me."]; NSLog(@"%@", myMSstr1); myMSstr2 = [NSMutableString stringWithFormat: @"%@%@%@%@%@", myMSstr1, myMSstr1, myMSstr1, myMSstr1, myMSstr1]; NSString *search, *replace; NSRange RangeOfStr; // Search and replace search = @"see me."; replace = @"don't see."; RangeOfStr = [myMSstr1 rangeOfString: search]; if(RangeOfStr.location != NSNotFound){ [myMSstr1 replaceCharactersInRange: RangeOfStr withString: replace]; NSLog(@"%@", myMSstr1); } // Search and replace All 搜尋所有search字串置換為replace字串 RangeOfStr = [myMSstr2 rangeOfString: search]; while(RangeOfStr.location != NSNotFound){ [myMSstr2 replaceCharactersInRange: RangeOfStr withString: replace]; NSLog(@"%@", myMSstr2); RangeOfStr = [myMSstr2 rangeOfString: search]; } 執行結果:

NSNumber::比較大小

NSNumber compare

!!! 切記!儲存於NSNumber物件的值,擷取時必須要一致。 擷取時輸出型態與儲存時的型態不同時,系統並不會出錯,而會輸出無效的值

NSNumber *myNumber, *floatNumber, *intNumber; NSInteger myInt; NSComparisonResult compareResult1, compareResult2; intNumber = [NSNumber numberWithInteger: 100]; floatNumber = [NSNumber numberWithFloat: 100.00]; myNumber = [NSNumber numberWithDouble: 123456e+15]; compareResult1 = [intNumber compare: myNumber]; compareResult2 = [intNumber compare: floatNumber]; //NSOrderedAscending < 官方解釋(The left operand is smaller than the right operand.) //NSOrderedSame == 官方解釋(The two operands are equal.) //NSOrderedDescending > 官方解釋(The left operand is greater than the right operand.) if(compareResult1 == NSOrderedAscending) NSLog(@"intNumber is less than myNumber"); else if(compareResult1 == NSOrderedSame) NSLog(@"intNumber is equal to myNumber"); else if(compareResult1 == NSOrderedDescending) NSLog(@"intNumber is greater than myNumber"); else NSLog(@"What the fuck?!"); if(compareResult1 == NSOrderedAscending) NSLog(@"intNumber is less than floatNumber"); else if(compareResult1 == NSOrderedSame) NSLog(@"intNumber is equal to floatNumber"); else if(compareResult1 == NSOrderedDescending) NSLog(@"intNumber is greater than floatNumber"); else NSLog(@"What the fuck?!"); 執行結果: