版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2017.05.25 |
前言
前面我簡單的寫了些NSString的初始化厕倍,寫了幾篇刚夺,都不難者蠕,但是可以對新手有一定的小幫助咧党,對于大神級人物可以略過這幾篇逊朽,NSString本來就沒有難的,都是細枝末節(jié)砰逻,忘記了查一下就會了旋恼,沒有技術(shù)難點,下面我們繼續(xù)~~~
1. NSString簡單細說(一)—— NSString整體架構(gòu)
2. NSString簡單細說(二)—— NSString的初始化
3. NSString簡單細說(三)—— NSString初始化
4. NSString簡單細說(四)—— 從URL初始化
5. NSString簡單細說(五)—— 向文件或者URL寫入
6. NSString簡單細說(六)—— 字符串的長度
7. NSString簡單細說(七)—— 與C字符串的轉(zhuǎn)化
8. NSString簡單細說(八)—— 識別和比較字符串
9. NSString簡單細說(九)—— 字符串的合并
10. NSString簡單細說(十)—— 字符串的分解
11. NSString簡單細說(十一)—— 字符串的查找
字符串的替換
一统台、- (NSString ***)stringByReplacingOccurrencesOfString:(NSString ****)target withString:(NSString ***)replacement;
直接看代碼
/**
* 1. - (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement;
*
* @param target:The string to replace.
* @param replacement:The string with which to replace target.
*
* @reuturn: A new string in which all occurrences of target in the receiver are replaced by replacement.
*/
//字符串
NSString *testStr = @"212eAhohgivAieye0oAhsoIFIFUFAYDSAT";
NSString *resultStr = [testStr stringByReplacingOccurrencesOfString:@"A" withString:@"--"];
NSLog(@"resultStr = %@",resultStr);
看輸出結(jié)果
2017-05-25 01:14:25.253 NSString你會用嗎雕擂?[3122:140209] resultStr = 212e--hohgiv--ieye0o--hsoIFIFUF--YDS--T
結(jié)論:簡單且容易理解。
二贱勃、- (NSString *****)stringByReplacingOccurrencesOfString:(NSString *****)target withString:(NSString ***)replacement options:(NSStringCompareOptions)options range:(NSRange)searchRange;
這個方法有四個參數(shù)我們先看一下參數(shù):
這里參數(shù)NSStringCompareOptions是一個枚舉井赌,是對替換方法的選項參數(shù)進行配置的。這個其實大家都很熟悉了贵扰,在說到字符串的比較時仇穗,說過這個枚舉值,這里只給出大家列出來戚绕,自己看吧纹坐。如果不考慮這個參數(shù)的限制可以傳入0。
typedef NS_OPTIONS(NSUInteger, NSStringCompareOptions) {
NSCaseInsensitiveSearch = 1,
NSLiteralSearch = 2, /* Exact character-by-character equivalence */
NSBackwardsSearch = 4, /* Search from end of source string */
NSAnchoredSearch = 8, /* Search is limited to start (or end, if NSBackwardsSearch) of source string */
NSNumericSearch = 64, /* Added in 10.2; Numbers within strings are compared using numeric value, that is, Foo2.txt < Foo7.txt < Foo25.txt; only applies to compare methods, not find */
NSDiacriticInsensitiveSearch NS_ENUM_AVAILABLE(10_5, 2_0) = 128, /* If specified, ignores diacritics (o-umlaut == o) */
NSWidthInsensitiveSearch NS_ENUM_AVAILABLE(10_5, 2_0) = 256, /* If specified, ignores width differences ('a' == UFF41) */
NSForcedOrderingSearch NS_ENUM_AVAILABLE(10_5, 2_0) = 512, /* If specified, comparisons are forced to return either NSOrderedAscending or NSOrderedDescending if the strings are equivalent but not strictly equal, for stability when sorting (e.g. "aaa" > "AAA" with NSCaseInsensitiveSearch specified) */
NSRegularExpressionSearch NS_ENUM_AVAILABLE(10_7, 3_2) = 1024 /* Applies to rangeOfString:..., stringByReplacingOccurrencesOfString:..., and replaceOccurrencesOfString:... methods only; the search string is treated as an ICU-compatible regular expression; if set, no other options can apply except NSCaseInsensitiveSearch and NSAnchoredSearch */
};
下面還是直接看代碼舞丛。
/**
* 2. - (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)options range:(NSRange)searchRange;
*
* @param target:The string to replace.
* @param replacement:The string with which to replace target.
* @param options:A mask of options to use when comparing target with the receiver. Pass 0 to specify no options.
* @param searchRange:The range in the receiver in which to search for target.
*
* @reuturn: A new string in which all occurrences of target, matched using options, in searchRange of the receiver are replaced by replacement.
*/
//例1
NSString *testStr1 = @"2a12eAhohgivAieye0oAhsoIaFIFUFAYDSAT";
NSString *resultStr1 = [testStr1 stringByReplacingOccurrencesOfString:@"A" withString:@"--" options:NSCaseInsensitiveSearch range:NSMakeRange(0, testStr1.length)];
NSLog(@"resultStr1 = %@",resultStr1);
//例2
NSString *testStr = @"2a12eAhohgivAieye0oAhsoIaFIFUFAYDSAT";
NSString *resultStr = [testStr stringByReplacingOccurrencesOfString:@"A" withString:@"--" options:NSCaseInsensitiveSearch range:NSMakeRange(0, 5)];
NSLog(@"resultStr = %@",resultStr);
看輸出結(jié)果
2017-05-25 23:02:15.045 NSString你會用嗎耘子?[1330:37453] resultStr1 = 2--12e--hohgiv--ieye0o--hsoI--FIFUF--YDS--T
2017-05-25 23:02:15.046 NSString你會用嗎?[1330:37453] resultStr = 2--12eAhohgivAieye0oAhsoIaFIFUFAYDSAT
結(jié)論:注意例1中是不區(qū)分大小寫的全部長度字符串的替換球切,例2中是不區(qū)分大小寫的length = 5的字符串的替換谷誓。
三、- (NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString *)replacement;
直接看代碼吧欧聘。
/**
* 3. - (NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString ***)replacement;
*
* @param range:A range of characters in the receiver
* @param replacement:The string with which to replace target.
*
* @reuturn: A new string in which the characters in range of the receiver are replaced by replacement.
*/
//例1
NSString *testStr1 = @"2a12eAhohgivAieye0oAhsoIaFIFUFAYDSAT";
NSRange range1 = NSMakeRange(0, testStr1.length);
NSString *resultStr1 = [testStr1 stringByReplacingCharactersInRange:range1 withString:@"--"];
NSLog(@"resultStr1 = %@",resultStr1);
//例2
NSString *testStr = @"2a12eAhohgivAieye0oAhsoIaFIFUFAYDSAT";
NSRange range = NSMakeRange(0, 2);
NSString *resultStr = [testStr stringByReplacingCharactersInRange:range withString:@"--"];
NSLog(@"resultStr = %@",resultStr);
看輸出結(jié)果
2017-05-25 23:12:56.140 NSString你會用嗎片林?[1463:43995] resultStr1 = --
2017-05-25 23:12:56.141 NSString你會用嗎?[1463:43995] resultStr = --12eAhohgivAieye0oAhsoIaFIFUFAYDSAT
結(jié)論:這個很簡單了吧怀骤,都能看懂费封,例1就是將全部長度的字符串替換為指定的字符串,例2是將指定長度和位置的字符串替換為指定的字符串蒋伦。
后記
慢慢來弓摘,一個一個的大家說,未完痕届,待續(xù)~~~