IOS阶段学习第14天笔记,知识点回顾

2019-11-11 19:29 来源:未知

Objc-C 知识点回看 四 NSString 、NSMutableString

1.NSString
    //NSString:不可变字符串, 一旦创建, 不能修改
    //初始化方法
    //创建空字符串
    NSString *string1 = [[NSString alloc] init];
    NSLog(@"%@", string1);
     //根据给定的常量字符串,创建NSString对象
    NSString *string2 = [[NSString alloc] initWithString:@"iPhone"];
    NSLog(@"%@", string2);
     //常量区字符串
    NSString *string3 = @"iPhone";
    NSLog(@"%@", string3);
    NSLog(@"%p", string3);//输出地址
    //如果要创建的字符串中出现其他变量, 需要用initWithFormat的方式创建
    NSInteger version = 6;
    NSString *string4 = [[NSString alloc] initWithFormat:@"iPhone %ld", version];
    NSLog(@"%@", string4);

   //便利构造器
    NSString *str1 = [NSString string];
    NSLog(@"%@", str1);
    NSString *str2 = [NSString stringWithString:@"iOS"];
    NSLog(@"%@", str2);
     NSString *str3 = @"iOS";
    NSLog(@"%@", str3);
    NSString *str4 = [NSString stringWithFormat:@"iOS %ld", version];
    NSLog(@"%@", str4);
    //获取字符串的长度
//    NSUInteger length = [str4 length];//调用getter方法
//    NSLog(@"%lu", length);
    NSLog(@"%lu", str4.length);//点语法
    //判断字符串是否以置顶字符串开始或结束
    NSString *str5 = @"abcdpp123";//常量区字符串
    NSString *str6 = [[NSString alloc] initWithFormat:@"abcdpp123"];//堆区字符串
    //前缀
    BOOL result = [str6 hasPrefix:@"abd"];
    NSLog(@"%d", result);
    //后缀
    result = [str6 hasSuffix:@"23"];
    NSLog(@"%d", result);
    //字符串截取(截取子字符串)
    //获取abc(开头字符串)
    NSString *subStr1 = [str6 substringToIndex:3];
    NSLog(@"%@", subStr1);
    //获取123(结尾字符串)
    NSString *subStr2 = [str6 substringFromIndex:6];
    NSLog(@"%@", subStr2);
    //获取dpp(中间字符串)
    //NSRange range = {3, 3};
    NSString *subStr3 = [str6 substringWithRange:NSMakeRange(3, 3)];
    NSLog(@"%@", subStr3);
    //拼接字符串
    NSString *newSubStr = [subStr1 stringByAppendingString:subStr2];
    NSLog(@"%@", subStr1);
    NSLog(@"%@", subStr2);
    NSLog(@"%@", newSubStr);
    NSLog(@"%p", newSubStr);//输出地址
    NSString *newSubStr1 = [NSString stringWithFormat:@"%@%@", subStr1, subStr2];
    NSLog(@"%@", newSubStr1);
    NSLog(@"%p", newSubStr1);//输出地址
    //替换字符串
    //@"NBA" -> @"CBA";
    NSString *str7 = @"NBANNN";
    NSString *newSubStr2 = [str7 stringByReplacingOccurrencesOfString:@"N" withString:@"C"];
    NSLog(@"%@", newSubStr2)
    //字符串比较
    //@"NBA" 和 @"CBA";
//    NSString *str8 = @"NBA";
//    NSString *str9 = @"CBA";
    NSString *str8 = [[NSString alloc] initWithFormat:@"NBA123456aa"];
    NSString *str9 = [[NSString alloc] initWithFormat:@"NBA123456aa"];
    //isEqualToString比较的是字符串的内容
    if ([str8 isEqualToString:str9]) {
        NSLog(@"字符串相等");
    } else {
        NSLog(@"不一致");
    }
    //==比较两个对象是否一致, 如果对象一致, 他们的内容一定一致
    if (str8 == str9) {
        NSLog(@"字符串相等");
    } else {
        NSLog(@"不一致");
    }
    //字符串和数值类型相互转换
    //@"123"
    //转化成数字, 遇到非数字即停止转换
    NSString *str10 = @"123a456";
    int a = [str10 intValue];
    NSLog(@"%d", a);
    NSInteger b = [str10 integerValue];
    NSLog(@"%ld", b);
    //大小写转换操作
    //@"ios" -> @"iOS"
    NSString *str11 = @"ios";
    //全部大写
    NSString *newStr = [str11 uppercaseString];
    NSLog(@"%@", newStr);
    //首字母大写
    NSLog(@"%@", [str11 capitalizedString]);
    //全部小写
    NSLog(@"%@", [str11 lowercaseString]);
2.NSMutableString:可变字符串
    //@"iPhone"
    //创建可变字符串, 容器大小是一个预期值, 一般写为0, 让系统自己根据内容大小分配空间
    NSMutableString *mString = [[NSMutableString alloc] initWithCapacity:0];
    NSLog(@"%@", mString);
    //添加字符串
    [mString appendString:@"iPhone"];
    NSLog(@"%@", mString);
    [mString appendFormat:@"iPhone %ld", version];;
    NSLog(@"%@", mString);
    //插入字符串
    [mString insertString:@" " atIndex:6];
    NSLog(@"%@", mString);
    //删除字符串
    [mString deleteCharactersInRange:NSMakeRange(0, 7)];
    NSLog(@"%@", mString);
    //做个练习,给定一个图片文件名,判断字符串中是否以“png”结尾,如果是就替换成“jpg”,如果不是,就拼接”.jpg”。
    NSMutableString *name = [[NSMutableString alloc] initWithCapacity:0];
    [name appendString:@"蓝鸥.png"];
    if ([name hasPrefix:@"png"]) {
        NSLog(@"以'png'结尾");
        [name replaceCharactersInRange:NSMakeRange(name.length - 3, 3) withString:@"jpg"];
    } else {
        NSLog(@"不以'png'结尾");
        [name appendString:@".jpg"];
    }
    NSLog(@"%@", name);

知识点回看 四 NSString 、NSMutableString 1.NSString //NSString:不可变字符串, 黄金时代旦创建, 不可能改改 //带头化方法 //创设空字符串 NSString *string1...

IOS阶段学习第14天笔记(NSString与NSMutableString卡塔 尔(英语:State of Qatar),iosnsstring

IOS学习(OC语言)知识点收拾

风流倜傥、OC字符串的操作

1卡塔 尔(阿拉伯语:قطر‎OC中字符串分为两种:

   1、不可变字符串NSString:不可能改改对象内容,可是足以改变指标的指针。

   2、可变字符串NSMutableString:能够修改对象内容。

 

二、NSString 不可变字符串的操作

1卡塔 尔(阿拉伯语:قطر‎将字符串常量对象直接赋值给字符串援引 NSString *[email protected]"hello"; 字符串对象的输出格式: 1 NSLog(@"str1=%@",str1)。 

 

2卡塔尔initWithString可将OC中的字符串对象营造字符串援用  1 NSString *str2=[[NSString alloc]initWithString:str1];  

 

3卡塔尔国initWithUTF8String可将C语言的字符串创立OC的字符串对象,将C字符串转换为OC字符串:

     1 NSString *str3=[[NSString alloc]initWithUTF8String:"iOS"]; 

 

4卡塔 尔(英语:State of Qatar)initWithFormat可将OC的格式化字符串创造OC的字符串对象int age=20; 

     1 NSString *str4=[[NSString alloc]initWithFormat:@"name is %@,age is %d",str1,age]; 

 

5卡塔尔国可使用.length方法赢得字符串的长度  1 NSUInteger len= str1.length; 

6卡塔 尔(阿拉伯语:قطر‎characterAtIndex可依据下标抽出有个别字符 如:

   

NSString *str1=@"hello"; unichar c= [str1 characterAtIndex:0];
//结果为:h

 

7卡塔尔国compare用于比较四个字符串,该措施分别朗朗上口写, 重临结果为NSComparisonResult 枚举类型数据 枚举值有

    1、NSOrderedAscending 表示前三个字符串小于后二个字符串

    2、NSOrderedSame 代表多个字符串相等

    3、NSOrderedDescending 表示前叁个字符串大于后四个字符串

实例代码:

NSString *str1=@"hello";
NSString *str3=[[NSString alloc]initWithUTF8String:"iOS"];
NSComparisonResult cmp=[str1 compare:str3];
if(cmp==NSOrderedAscending){
 NSLog(@"%@<%@",str1,str3);
}else if (cmp==NSOrderedSame){
 NSLog(@"%@=%@",str1,str3);
}else if (cmp==NSOrderedDescending){
 NSLog(@"%@>%@",str1,str3);
}//结果:hello<iOS

 

8卡塔尔国caseInsensitiveCompare 不区分轻重缓急写相比字符串;比较字符串,能够设置比较筛选

    NSNumericSearch:假若字符串中有数字, 按数字大小比较,举例:ios5<iso12

    NSCaseInsensitiveSearch:不区分轻重缓急写相比,举个例子iOS7=ios7

 实例代码:

 1 NSComparisonResult cmp=[str1 caseInsensitiveCompare:str3];
 2 str1=@"iOS7";
 3 str3=@"ios7";
 4 cmp=[str1 compare:str3 options:NSCaseInsensitiveSearch];
 5 if(cmp==NSOrderedAscending){
 6 NSLog(@"%@<%@",str1,str3);
 7 }else if (cmp==NSOrderedSame){
 8 NSLog(@"%@=%@",str1,str3);
 9 }else if (cmp==NSOrderedDescending){
10 NSLog(@"%@>%@",str1,str3);
11 } //结果:iOS7=ios7

 

9卡塔 尔(阿拉伯语:قطر‎isEqualToString 相比较2个字符串内容是还是不是等于,重临BOOL(YES/NO)值

实例代码:

1 NSString *str1=@"hello";
2 NSString *str2=[[NSString alloc]initWithString:str1];
3 if([str1 isEqualToString:str2]){
4     NSLog(@"%@ equal %@",str1,str2);
5  }//结果:hello equal hello

10卡塔尔uppercaseString 将小写字母字符串转为大写 举例:

     1 NSString *str1=@"hello";NSString *str6=[str1 uppercaseString]; 2 // 结果为:HELLO   

  11卡塔 尔(英语:State of Qatar)lowercaseString 将大写字母字符串转为小写 。

 12卡塔尔国hasPrefix 判别是或不是以有个别字符串开始(作为前缀卡塔 尔(阿拉伯语:قطر‎譬如 :

 

NSString  str1=@"www.baidu.com";
if([str1 hasPrefix:@"www"]){
     NSLog(@"yes");
}//  结果:yes

 

13卡塔 尔(英语:State of Qatar)hasSuffix 决断是还是不是以有些字符串结尾(后缀卡塔 尔(英语:State of Qatar)举例:

     

1  NSString  str1=@"www.baidu.com";
2 if([str1 hasSuffix:@"com"]){
3   NSLog(@"yes");
4 }//结果:yes

 

14卡塔尔substringFromIndex 从有些下标起先取子字符串(到竣事卡塔尔譬喻:

       1 NSString str1=@"This is string A"; 2 NSString *res=[str1 substringFromIndex:1]; //结果:his is string A 

 

15卡塔 尔(阿拉伯语:قطر‎substringToIndex 从第三个字符开头取到有些下标的子字符串,不包涵近年来数字对应的字符,取当前数字下标前面字符

 例如:

1 NSString  str1=@"This is string A";
2 NSString  *res=[str1 substringToIndex:2];//结果:Th
3 [[str1 substringFromIndex:8] substringToIndex:5];//结果: strin

 

 16卡塔 尔(阿拉伯语:قطر‎substringWithRange 依照范围重返子字符串

NSRange range={8,5};//直接给范围值
range=NSMakeRange(8, 5);//通过函数返回一个范围的变量
NSString  str1=@"This is string A";
NSString res=[str1 substringWithRange:range]; //结果:strin

 

 17卡塔尔rangeOfString 在字符串中查找子字符串,重回那一个字符串的所在地方以至长度 NSRange

实例代码:

1 NSString  str1=@"This is string A";
2 NSRange  range=[str1 rangeOfString:@"string"]; //结果:{8,6}
3 if(range.location!=NSNotFound){
4 NSLog(@"find");
5 }//结果:find

 

 18)使用 #if 0  代码段… #endif 能够让系统跳过某段代码不实行,例如:

#if 0  
NSLog(@“hello world!”); 
#endif
NSLog(@“我是第二段代码!”);
//执行结果:我是第二段代码!

19卡塔尔intValue、longValue、floatValue、doubleValue 可将字符串类型的数字转变为数值类型的数字
       例如: 1 NSString *[email protected]“88”; 2 int a=[str intValue];        

20卡塔 尔(阿拉伯语:قطر‎NSString 四个字符串的拼接

实例代码:

1   NSString *str1=@"My name is";
2   NSString *str2=@"John Zhang";
3   NSString *str3=@"I am 45";
4   NSString *s1=[NSString stringWithFormat:@"%@ %@ %@",str1,str2,str3];
5   NSLog(@"s1=%@",s1); //结果:s1=My name is John Zhang I am 45

 

21)initWithContentsOfFile  将文件内容读取成字符串对象, 第三个参数是文本名(相对路线卡塔尔,第4个参数是编码类型,
    第两个参数是不对回调信息  举个例子:

  1 NSString *content=[[NSString alloc]initWithContentsOfFile:"/Documents/ocfile/Person.h" encoding:NSUTF8StringEncoding error:nil];      

22卡塔尔国直接打字与印刷对象,默许调用description方法,突显对象的类名和地址,能够重写description方法,
        注意:假若直接输出类对象中带有粤语内容会有乱码,所以含汉语内容的类对象必得遍历输出。

 三、NSMutableString 可变字符串的操作

 1卡塔尔initWithString 用不可变字符串创造可变字符串对象 比如:

      1 NSString *str=@"This is string B"; 2 NSMutableString *mStr=[[NSMutableString alloc]initWithString:str]; 

  2卡塔 尔(英语:State of Qatar)insertString 在钦命下标地方插入二个字符串 比如:

     

1 NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];
2 [mStr insertString:@"hello " atIndex:0]; //结果:hello This is string B

 

3卡塔尔appendString 在字符串前边扩展字符串 比方:

   

1  NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];
2 [mStr appendString:@" shanghai”];//结果:This is string B shanghai

 

4卡塔 尔(英语:State of Qatar)appendFormat 在字符串前面扩展三个格式化字符串 比方:

   

1 NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];
2 [mStr appendFormat:@" %d",20];//结果:This is string B 20

 

5卡塔 尔(阿拉伯语:قطر‎deleteCharactersInRange 将钦定范围的字符串删除 譬喻:

 

1  NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];
2 [mStr deleteCharactersInRange:NSMakeRange(0, 6)];// 结果: s string B

 

6卡塔 尔(英语:State of Qatar)replaceCharactersInRange 将点名范围的字符串用新的字符串替换 举例:

1 NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];
2 [mStr replaceCharactersInRange:NSMakeRange(2, 2) withString:@"IS"]; //结果:ThIS is string B
3  //将字符串中所有的is替换为IS
4  NSRange range=[mStr rangeOfString:@"is"];
5  while (range.location!=NSNotFound) {
6       [mStr replaceCharactersInRange:range withString:@"IS"];
7       range=[mStr rangeOfString:@"is"];
8  }

 

7卡塔尔国replaceOccurrencesOfString 将字符串中内定范围内有所的is替换到IS 比方:

   

1  NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];
2 [mStr replaceOccurrencesOfString:@“is” withString:@“IS” options:1 range:NSMakeRange(0, mStr.length)]; 
3 //结果:ThIS IS string B

 

8卡塔尔国setString 纠正字符串内容 举个例子:

  

1  NSMutableString *mStr=[[NSMutableString alloc]initWithString:@"This is string B"];
2 [mStr setString:@"hello"]; //结果:hello

 

9卡塔尔NSMutableString 实现多少个字符串的拼凑  
实例代码:

1 NSString *str1=@"My name is";
2 NSString *str2=@"John Zhang";
3 NSString *str3=@"I am 45";
4 NSMutableString *s2=[[NSMutableString alloc]initWithString:str1]; 
5 
6 [s2 appendString:str2];
7 [s2 appendString:@" "];
8 [s2 appendString:str3];
9 NSLog(@"s2=%@",s2);   //结果:s2=My name isJohn Zhang I am 45

IOS学习(OC语言)知识点收拾 风流倜傥、OC字符串的操作 1卡塔 尔(英语:State of Qatar)OC中字符串分为二种: 1、不可...

TAG标签:
版权声明:本文由990888藏宝阁发布于计算机网络,转载请注明出处:IOS阶段学习第14天笔记,知识点回顾