zoukankan      html  css  js  c++  java
  • OC字符串

    1.import比#include的优点:避免重复引用同一.h头文件。

    2.计算机读取字符串的方式:起始位置location、起始到结束的长度length

    3.url分为:文件路径、网络路径(地址)。

    4.初始化中:实例方法都是以init开头。类方法以类名开头(如:string、array、dictionary、set)。

    5.容量不可变:带返回值,产生新内存。

    6.容量可变:操作同一块内存(改变原有内容),内存不够按容量值增加;不用产生新内存,时间快,但多出来的空间会浪费,不带返回值。

    7.%p,对象的地址。

    8.转为字符串:NSStringFormRange(range对象);字符串转为整形:integerValue。

    一.初始化(”特有“实例方法、类方法选择)

    String分配在静态区,没分配内存。

    Format:可格式化,支持其它数据类型,并将其转为字符串类型。

    判断字符串是否为空用(.length > 0)

    二.字符串对象追加

    stringByAppendingFormat:

    三.截取字符串对象的子字符串

    1.从loc到最后一个

    substringFromIndex:loc

    2.从loc到指定长度

    NSRange   r = {loc,len};

    substringWithRange:r

    四.查找字符串对象的子字符串起始位置、长度

    rangeOfString:@" " 

          options:

    .location ==  NSNotFound(为找不着)

    五.读取url

    stringWithContentsOfFile

    stringWithContentsOfURL

    六.比较字符串

    字符串内容比较:isEqualToString:

    字符大小比较:compare :( 等同减号作用,返回值是-1,0,1)

    七.大小写转换

    lowercaseString

    uppercaseString

    八.字符串替换、分割为数组

    stringByReplacingOccurrencesOfString:

                  withString:

    stringByReplacingCharactersInRange:

                  withString:

    componentsSeparatedByString

    九.option:

    NSCaseInsensitiveSearcher:不区分大小写字符。

    NSDiacriticInsensitiveSearch:忽略-后内容作比较。(@"o-mygod" == @"o")

    十.容量可变

    1.初始化

    [NSMutableString stringWithCapacity:];

    API。。。。。。

        /*
        NSString *str1 = [[ NSString alloc]initWithString: @"jobs"]; //分配在静态区,与NSString *str1 = @"jobs";是一样的。
        NSString *str2 = [[NSString alloc]initWithFormat:@"%d",123];
        NSString *str3 = [[ NSString alloc]initWithString: @"jobs"];
        NSString *s = [[NSString alloc]initWithFormat:@"%d",123];
        
        NSLog(@"str1 = %p",str1);
        NSLog(@"str2 = %p",str2);
        NSLog(@"str3 = %p",str3);
        NSLog(@"s = %p",s);
        
        NSLog(@"str1 = %d",str1.retainCount);//等于-1的原因,没分配内存
        NSLog(@"str2 = %d",str2.retainCount);
        
        NSString *str4 = [NSString stringWithFormat:@"%d",567];//静态方法,便利构造器autorelease
        NSString *str5 = [NSString stringWithFormat:@"gates"];
        
        NSString *str6 = [str4 stringByAppendingString:str5];//追加字符串产生新的字符串,str4不变
        NSString *str7 = [str4 stringByAppendingFormat:@"%d",89];
        
        //求子字符串
        NSString *str8 = @"iphone5s5s";
        NSString *str9 = [str8 substringFromIndex:6];//从lcoation该下标开始到结束,输出5s5s
        NSString *str10 = [str8 substringToIndex:6];//不包括目前的(从下标0开始到该下标的前一位结束,输出iphone)
        
        NSRange r1 = {5,1};
        NSString *str11 = [str8 substringWithRange:r1];
        
        //查找字符串
        NSRange r2 = [str8 rangeOfString:@"5s"
                                 options: NSBackwardsSearch];
        //NSRange r2 = [str8 rangeOfString:@"abc"];
        if (r2.location == NSNotFound)
        {
            NSLog(@"没找着。。。。。。");
        }
        
        NSLog(@"r2:%@",NSStringFromRange(r2));
        //
        */
        /*
         //读取文件
         NSString *path = [[NSBundle mainBundle] pathForResource:@"SensitiveWord"//文件名
         ofType:nil];//文件后缀
         
         NSString *str12 = [NSString stringWithContentsOfFile:path
         encoding:NSUTF8StringEncoding
         error:nil];//返回2个值
         NSLog(@"str12 = %@",str12);
         //读取网络
         // NSURL *url = [NSURL fileURLWithPath:path];
         NSURL *url = [NSURL URLWithString:@"http://www.baidu.com/"];
         NSString *str13 = nil;
         str13 = [NSString stringWithContentsOfURL:url
         encoding:NSUTF8StringEncoding
         error:nil];
         NSLog(@"str13 = %@",str13);
         
         
         //转换
         NSString *str14 = @"123";
         int num1 = [str14 integerValue];
         NSLog(@"num1 = %d",num1);
         //比较字符串,
         if ([str14 isEqualToString:@"123"])
         {
         NSLog(@"two string is same");
         }
         
         NSComparisonResult r = [str14 compare:@"122"];
         NSLog(@"r = %d",r);
         //大小写转换
         NSString *str15 = @"abC";
         NSString *str16 = [str15 lowercaseString];//uppercaseString
         NSLog(@"str16 = %@",str16);
         
         */
        //子字符替换
     
        NSLog(@"%@",[@"hello world" stringByReplacingOccurrencesOfString:@"h"
                                                              withString:@"WW"]);
        
        NSLog(@"%@",[@"hello world" stringByReplacingCharactersInRange:NSMakeRange(3, 5)
                                                            withString:@"xxxxx"]);
        
        NSLog(@"%@",[@"super.man.xxx" componentsSeparatedByString:@"."]);
        
        
        
        //可变字符串:操作同一个地址,针对同一个内存,不用产生新内存,时间快,但多出来的空间会浪费
        //NSMutableString *mstr1 = [NSMutableString string];
        NSMutableString *mstr1 = [NSMutableString stringWithCapacity:10];//容量不够时,每次增加10
        [mstr1 appendString:@"jobs"];
        [mstr1 appendFormat:@"%d",123];
        NSLog(@"mstr1 = %@",mstr1);
        
        NSRange r3 = {0,4};
        [mstr1 deleteCharactersInRange:r3];
        NSLog(@"mstr1 = %@",mstr1);
  • 相关阅读:
    如何利用U盘重装系统
    对于python爬虫urllib库的一些理解(抽空更新)
    由pthread库版本不一致导致的段错误
    使用WinDBG调试OnDO Server
    直接输出蛇形矩阵
    在Windows 7 x64 上编译libsvn
    Visual Studio Express 2012 安装缺少头文件、库文件的问题
    元和网络的密码加密过程
    有道网络查词的简单分析
    统一项目管理平台(UMPLatForm.NET)【开发实例】之产品管理(WinForm)
  • 原文地址:https://www.cnblogs.com/huen/p/3524438.html
Copyright © 2011-2022 走看看