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);
  • 相关阅读:
    VScode 修改中文字体
    missing KW_END at ')' near '<EOF>'
    SQL inner join, join, left join, right join, full outer join
    SQL字符替换函数translater, replace
    SQL COOKBOOK SQL经典实例代码 笔记第一章代码
    sqlcook sql经典实例 emp dept 创建语句
    dateutil 2.5.0 is the minimum required version python
    安装postgresql后找不到服务 postgresql service
    Postgres psql: 致命错误: 角色 "postgres" 不存在
    【西北师大-2108Java】第十六次作业成绩汇总
  • 原文地址:https://www.cnblogs.com/huen/p/3524438.html
Copyright © 2011-2022 走看看