NSString

content:

  • length:NSUInteger,%ld
  • characterAtIndex: it isn't get the string but the unichar
NSString *string = @"Abhd";
    NSLog(@"%hu",[string characterAtIndex:0]);
    unichar ch = [string characterAtIndex:0];
    if (ch == 'A') {
        NSLog(@"%u",ch);
    }
NSString *string1 = @"A String"; 
NSString *string2 = @"String";
NSLog(@"string1:%@",[string1 uppercaseString]);//大写
NSLog(@"string2:%@",[string2 lowercaseString]);//小写 
NSLog(@"string2:%@",[string2 capitalizedString]);//首字母大小
substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符
NSString *string1 = @"This is a string"; 
NSString *string2 = [string1 substringToIndex:3]; 
substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符
NSString *string1 = @"This is a string"; 
NSString *string2 = [string1 substringToIndex:3]; 
substringWithRange: //按照所给出的位置,长度,任意地从字符串中截取子串
NSString *string1 = @"This is a string"; 
NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)];
rangeOfString: //查找字符串某处是否包含其它字符串
NSString *string1 = @"This is a string";
NSString *string2 = @"string";
NSRange range = [string1 rangeOfString:string2];
NSInteger location = range.location;
NSInteger leight = range.length;
NSString *astring = [NSString stringWithFormat:@"Location:%ld,Leight:%ld",location,leight]];
NSLog(@"astring:%@",astring);
附:
NSRange的两个属性:
location,
length
-appendString: and -appendFormat: //把一个字符串接在另一个字符串的末尾
NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"hello"];
[String1 appendString:@",Liang Girl 11"];
NSString *string2 = @",Liang Girl 22";
[String1 appendFormat:@"%@",string2];
[String1 appendFormat:@",Liang Girl 33"];
NSLog(@"String1:%@",String1);
-insertString: atIndex: //在指定位置插入字符串
NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];
[String1 insertString:@"Hi! " atIndex:0];
NSLog(@"String1:%@",String1);
-setString: 
NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"]; 
[String1 setString:@"Hello Word!"]; 
NSLog(@"String1:%@",String1);
-replaceCharactersInRange: withString: //用指定字符串替换字符串中某指定位置、长度的字符串
NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"]; 
[String1 replaceCharactersInRange:NSMakeRange(0, 4) withString:@"That"]; 
NSLog(@"String1:%@",String1);
-hasPrefix: //检查字符串是否以另一个字符串开头
- hasSuffix:
NSString *String1 = @"NSStringInformation.txt"; 
[String1 hasPrefix:@"NSString"] = = 1 ? NSLog(@"YES") : NSLog(@"NO"); [String1 hasSuffix:@".txt"] = = 1 ? NSLog(@"YES") : NSLog(@"NO");
从字符串分割到数组- componentsSeparatedByString:
NSString *string = @"One,Two,Three,Four";
NSLog(@"string:%@",string);
NSArray *array = [string componentsSeparatedByString:@","];
NSLog(@"array:%@",array);
从数组合并元素到字符串- componentsJoinedByString:
NSArray *array = [[NSArray alloc] initWithObjects:@"One",@"Two",@"Three",@"Four",nil];
NSString *string = [array componentsJoinedByString:@","];
NSLog(@"string:%@",string);
查找与替换
-(NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString *)replacement
在给定的范围内查找并替换
-(NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement
按照所给出的范围替换的原有的字符
NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"]; 
[String1 replaceCharactersInRange:NSMakeRange(0, 4) withString:@"That"]; // 用于NSMutableString 
NSLog(@"String1:%@",String1);

扩展:

  • stringByReplacingCharactersInRange
以前解析html的时候,不知道该怎么做,勉强做出来的效果还不好,以后可以用这个试试了。
摘自:http://blog.csdn.net/yqmfly/article/details/12944391
在做标签过滤的时候,用了如下代码,结果内存几秒钟就达到饱满了。
while ((ran = [str rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound){
            str = [str stringByReplacingCharactersInRange:ran withString:@""];
        }
后来修改了一下,把str拆分了,内存增长就没那么快了。
贴一下网页标签过滤的代码。
- (NSString *)filterHtmlTag:(NSString *)originHtmlStr{
    NSRange ran;
    NSArray *arrMyStr = [originHtmlStr componentsSeparatedByString:@"\n"];
    NSMutableString *strOrg = [NSMutableString string];
    for (int iArr=0;iArr < [arrMyStr count] ;iArr++) {
        NSString *strArr = [arrMyStr objectAtIndex:iArr];
        while ((ran = [strArr rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound){
strArr = [strArr stringByReplacingCharactersInRange:ran withString:@""];
        }
        if (strArr.length > 0) {
            [strOrg appendString:strArr];
        }
    }
    return strOrg;
}
  • rangeOfString
摘自:http://blog.sina.com.cn/s/blog_7b9d64af01019q2m.html
在查资料的时候,无意间发现了一个好方法:组合URL。其中,用到了rangeOfString方法:查找字符串。那就手下把:
-(NSURL*)smartURLForString:(NSString*)str
{
  NSURL *   result;
  NSString * trimmedStr;
  NSRange   schemeMarkerRange;
  NSString * scheme;
   
  result = nil;
   // 去除空白
  trimmedStr = [strstringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceCharacterSet]];
  if ( (trimmedStr != nil) && (trimmedStr.length != 0) ) {
    schemeMarkerRange = [trimmedStr rangeOfString:@"://"];
     
    if(schemeMarkerRange.location ==NSNotFound) {
      result =[NSURL URLWithString:[NSString stringWithFormat:@"http://%@", trimmedStr]];
    } else {
      scheme =[trimmedStr substringWithRange:NSMakeRange(0, schemeMarkerRange.location)];
      assert(scheme != nil);
       
       if( ([scheme compare:@"http"  options:NSCaseInsensitiveSearch] == NSOrderedSame)
       || ([schemecompare:@"https" options:NSCaseInsensitiveSearch] == NSOrderedSame) ) {
        result = [NSURL URLWithString:trimmedStr];
      }else {
         //It looks like this is some unsupported URL scheme.
      }
    }
  }
   
  return result;
}
  • 如何打印NSRange
NSLog(@"%@",NSStringFromRange(range));
同类技巧:使用对应的转换
NSStringFromCGPoint   
NSStringFromCGSize   
NSStringFromCGRect  
NSStringFromCGAffineTransform   
NSStringFromUIEdgeInsets
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容