Foundation——字符串

来源:互联网 发布:黑科技网络验证 编辑:程序博客网 时间:2024/04/29 21:57
NSString 类(不可修改,是字符串常量)

一.创建字符串

    NSString * str2 = @"ffff";//[[NSString alloc] initWithString:@"ffff"];

    NSString * str3 = [NSString stringWithFormat:@"%@,%@",@"a",@"b];


二.字符串的获取

    //1.获取字符串的长度

        NSUInteger length =   [str length]; //str.length

    //2.根据索引获得单个字符

        NSString * str2 = @"www.itcast.cn";

        //如果你给定的索引值,超出了字符串的长度,就会导致异常Range or index out of bounds

        //如果你给入的是一个负数那么获得的值就是一个乱码

        unichar c = [str2 characterAtIndex:2];//索引值是从 0 开始的

        NSLog(@"获得字符 %c",c);

        

    //3.根据索引获得字符串的一个子串

        NSString * str3 = @"www.itcast.com";

        //substringFromIndex 从给定的索引开始(包含该索引位置)截取到字符串末尾

        NSString * tmpStr = [str3 substringFromIndex:3];

        NSLog(@"substringFromIndex %@ ",tmpStr);

        //substringToIndex截取字符串到给定索引的位置结束,(不包含该索引位置);qishisuo

        NSString * tmpStr2 = [str3 substringToIndex:3];

        NSLog(@"substringToIndex %@",tmpStr2);

        

        NSLog(@"str3 %@",str3);

        

    //4.截取字符串的某一段

        NSRange rang = {4,6};

        //location (起始索引的位置,包含该索引) length(要截取的长度)

        NSString * tmpStr3 = [str3 substringWithRange:rang];

        

        NSLog(@"substringWithRange %@",tmpStr3);

    //5.获得一个字符串的索引位置

        NSString * tmpStr4 = @"it";//@"itcast";

        NSRange tmpRange = [str3 rangeOfString:tmpStr4];

        //可以使用NSStringFromRange 把一个Range结构体转换成字符串

        //NSNotFound 没有找到

        if (tmpRange.location == NSNotFound)

        {

            NSLog(@"tmpStr4 不在 Str3");

        }else

        {

            NSLog(@"rangeOfString %@",NSStringFromRange(tmpRange));

        }



三.字符串的判断


        //1.判断字符串是否为空

        NSString  * str = @"";

        if (str == nil || str.length == 0)

        {

            NSLog(@"字符串为空");

        }

        

        //2.判断字符串是否已指定的内容开头

        NSString * str2 = @"www.itcast.cn";

        BOOL isPerfix = [str2 hasPrefix:@"xww"];

        NSLog(@"hasPerfix %@",isPerfix ? @"YES" : @"NO" );

        

        //3.判断字符串是否以指定的内容结尾

        //在开发中中常用在 判断文件格式

        //.txt .avi,.rmvb mkv doc mp3,mp4 pdf

        NSString * str3 = @"www.itcast.cn.txtttt";

        BOOL isSuffix = [str3 hasSuffix:@".txt"];

        NSLog(@"hasSuffix %@",isSuffix ? @"YES" : @"NO" );

        

        //4.判断两个字符串是否相等

        NSString * pstr1 = @"abc";

        NSString * pstr2 = @"abc;   //相等

  

        NSString * pstr5 = [NSString stringWithFormat:@"%@",@"abcd];//与上不等

         //内存管理set方法中,判断两个字符串是否相等,一定不能够使用 isEqualToString方法。因为,我们就是要判断两个字符串的指真地址是否相等

            

        //6.compare isEqualToString的增强版本

        //Ascii值大小  a 小于 b

        NSString * strTmp1 = @"abc"//a 97 b 98

        NSString * strTmp2 = @"bbc";

        NSComparisonResult result = [strTmp1 compare:strTmp2];


   
四.基本数据类型转换成字符串

                //1.int类型换换成字符串

        int a = 10;

        NSString * str1 = [NSString stringWithFormat:@"%d",a];

       //2.float -> NSString

        float f = 2.4;

        NSString * str3 = [NSString stringWithFormat:@"%.1f",f];

        //3.double - >NSstring

        double d = 65.9898;

        NSString * str4 = [NSString stringWithFormat:@"%.4f",d];

        //4.char - > NSString

        char c = 'c';

        NSString * str5 = [NSString stringWithFormat:@"%c",c];

        NSLog(@"str5 %@",str5);

        //5.NSString -> int

        NSString * str6 = @"1";

        int i1 = [str6 intValue];

        NSLog(@"i1 %d",i1);

        //5.NSString -> float

        NSString * str7 = @"9.8";

        float f1 = [str7 floatValue];

        NSLog(@"f1 %.1f",f1);

        //6.NSString -> double

        NSString * str8 = @"8.88";

        double d1 = [str8 doubleValue];

        NSLog(@"d1 %.2f",d1);

        

        //注意:当你要把字符串转换成某种基本数据类型的时候,一定要确定你要转化你的数据是正确

        //7.将字符串中的字母转换成大写

        NSString * str10 = @"china";

        NSString * tmpStr1 = [str10 uppercaseString];

        NSLog(@"tmpStr1 %@ str10 %@",tmpStr1,str10);

        

        //8.将字符中的字母转换成小写

        NSString * str11 = @"CHINA";

        NSString * tmpStr2 = [str11 lowercaseString];

        NSLog(@"tmpStr2 %@",tmpStr2);

        

        //9.将首字母大写

        NSString * str12 = @"china";

        NSString * tmpStr3 = [str12 capitalizedString];

        NSLog(@"tmpStr3  %@",tmpStr3);



五.字符串重组

        //1.多个数据拼接成一个字符串

        int year = 1988;

        int month = 4;

        int day = 15;

        NSString * date = [NSString stringWithFormat:@"%d%d%d",year,month,day];

        //2.字符串的末尾追加新的字符

        NSString * str1 = @"www.";

        NSString * str2 = [str1 stringByAppendingString:@"itcast.cn"];

        NSLog(@"str2 %@ str1 %@",str2,str1);

        

        //3.在制定的范围替换字符串

        NSString * str3 = @"www.cn";

        NSRange range = {4,0};//0相当于直接插入

        // 4 location代表的时从哪个索引开始插入,length 代表的意思可以覆盖几个字符

        NSString * str4 = [str3 stringByReplacingCharactersInRange:range withString:@"itcast."];

        //4.使用新的字符,替换原有的字符串(a替换成b)

        NSString * str5 = @"www.itcast.cn";

        NSString * str6 = [str5 stringByReplacingOccurrencesOfString:@"w" withString:@"a"];

        //5.在字符串中删除特定的某些字符 胡汉三 hhs

        NSString * str7 = @"www---.itcatst.--cn";

        NSString * str8 = [str7 stringByReplacingOccurrencesOfString:@"-" withString:@""];   

        //6.去掉字符串中的空格

        NSString * str9 = @"www  .itcat  .cn";

        NSString * str10 = [str9 stringByReplacingOccurrencesOfString:@" " withString:@""];

        NSLog(@"str10 %@",str10);

 

六.字符串写入文件


        //将字符串写入到文件

        NSString * content = @"浙江冰雹,如汤圆大小,习近平万岁";

        NSString * path = @"/Users/aplle/Desktop/共享课堂/mytest.txt";

        //1.参数要给入文件目录(并且要包括文件名称)

        //2.atomically : YES

        //3.NSUTF8StringEncoding 国际通用的编码格式

        //4.NSError 是用来记录错误信息的

        NSError * error;

        BOOL isWriteSuccess = [content writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];

        

        if(isWriteSuccess)

        {

            NSLog(@"文件创建成功");

        }

        else

        {

            NSLog(@"error %@",error);

        }


七.从文件中读取字符串内容


        //要给出文件路径

        //你写入文件的时候,使用的是什么编码格式,读取的时候就要给我用什么编码格式

        NSString * path = @"/Users/aplle/Desktop/共享课堂/mytest.txt";

        NSError * error;

        NSString * str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];

        

        if (error != nil)

        {

            NSLog(@"error message %@",error);

        }

        else

        {

            NSLog(@"str content %@",str);

        }


      



NSMutablestring 类

一.创建可变字符串  

                    

        //NSMutableString(相当于char []) 继承自 NSString(char*)

        

        NSMutableString * muStr = [[NSMutableString alloc] init];


        //是初始化字符串内容

        [muStr setString:@"www"];

        

        //动态的给字符串末尾追加新值

        [muStr appendString:@".cn"];

        

        //插入字符串到指定的索引位置

        [muStr insertString:@".itcast" atIndex:3];

        

        //删除指定范围的字符串

         [muStr deleteCharactersInRange:range];


        //替换指定范围的字符串

        [muStr replaceCharactersInRange:range withString:@"传智播客"];


0 0