[5]姥爷幽默谈Objective-C-字符串(NSString)

1.NSString

Description: The NSString class declares the programmatic interface for an object that manages immutable strings. An immutable string is a text string that is defined when it is created and subsequently cannot be changed. NSString is implemented to represent an array of Unicode characters, in other words, a text string.

NSString 为一个管理不可变字符串的对象提供了一个编程接口。一个不可变的字符串是一个当它被创建后,不能能改变的纯文本字符。NSString 相当于一个Unicode 字符组成的数组,换句话说,就是一个纯文本字符串。

1)字符串的创建
    a.创建常量字符串。
        NSString *constString = @"This is a String!";
    b.用实例⽅方法创建字符串
        NSString *allocString = [[NSString alloc] initWithString:@"我是一个动态创建的不可变 字符串"]; 
    c.用类⽅方法创建字符串
        NSString *allocString = [[NSString stringWithString:@"我是一个动态创建的不可变字符串"];

    d.⽤一个字符串创建另一个字符串
        NSString *oldString=@"ABC";
        NSString *copyStirng=[NSString stringWithString:oldString]; 
    e.(1)用标准c创建字符串:initWithCString方法 
        char *cString = "ABC"; 
        NSString *cToNsstring1 = [[NSString alloc] initWithCString:cStringencoding:NSUTF8StringEncoding]; 
      (2)第二种形式
        char *cStr = "ABD";
        NSString *cToNsstring2 = [NSStringstringWithUTF8String:cStr];
    f.用类⽅法 创建格式化字符串
        NSString *formatStringa=[NSString stringWithFormat:@"%@,%d",@"ABC",4]; 

2)字符串的改查
    a.字符串长度
        NSString *charCountString=@"ABC"; NSLog(@"%@的⻓度%ld",charCountString,[charCountString.length]) ;
    b.字符串比较
        NSString *stringa = @"这是一个字符串!"; 
        NSString *stringb = @"这第二个字符串!";
        BOOL result = [stringa isEqualToString:stringb]; NSLog(@"⽐比较结果:%d",result);
    c.(1)区分⼤小写的⽐较
        NSString *string1 = @"This is a string!"; 
        NSString *string2 = @"This is a String!";
        NSComparisonResult intResult1 = [string1 compare:string2];
        NSLog(@"区分⼤大⼩小写时");
        if (intResult1==NSOrderedSame) {
        NSLog(@"%@==%@",string1,string2); }
        else if(intResult1==NSOrderedAscending){
         NSLog(@"%@<%@",string1,string2);
        }
        else if(intResult1==NSOrderedDescending){
        NSLog(@"%@>%@",string1,string2); }
    c.(2)不区分⼤小写的⽐较 NSComparisonResult intResult2 = [string1 caseInsensitiveCompare:string2];
NSLog(@"不区分⼤大⼩小写时");
if (intResult2==NSOrderedSame) {
NSLog(@"%@==%@",string1,string2); }
else if(intResult2==NSOrderedAscending){ NSLog(@"%@<%@",string1,string2);
}
else if(intResult2==NSOrderedDescending){
NSLog(@"%@>%@",string1,string2); }

d.字符串拼接
NSString *str11 = @"hello";
NSString *str22 = @"world";
NSString *str33 = [str11 stringByAppendingString:str22]; NSString *str44 = [str22 stringByAppendingFormat:@"%d...%d",10,20];
NSLog(@"str11=%@,str22=%@,str33=%@,str44= %@",str11,str22,str33,str44);

e.(1)⽤用指定字符串作为标志拆分原字符串
NSString *list = @"Norman, Stanley, Fletcher,abc";
NSArray *listItems = [list componentsSeparatedByString:@",
"];
for(NSString *itemstr in listItems) {
NSLog(@"%@",itemstr); }

e.(2).字符串转成数字
[doubleString doubleValue];
[floatString floatValue]; 
[longlongString longLongValue]; 
[boolString boolValue];

f.(1)转成大写字⺟
    [lowcaseString uppercaseString]); 
(2)转成⼩写字⺟
    [uppercaseString lowercaseString]);
g.子串获取
    //下标从0开始
    (1)获取字符串前n个字符 
        substringToIndex:6];
    (2)获取从字符串n个字符开始的字符串 
        substringFromIndex:8]

    (3)获取指定范围内的字符串
        res=[parentString1 substringWithRange:NSMakeRange(8, 6)];

    (4)获得⼀一个字符串在另⼀一个字符串中的位置 
    subRange=[string1 rangeOfString:@"string A"];
    (5)判断是否存在另⼀一个字符串中 
    subRange=[parentString1 rangeOfString:@"string
    B"];
    if (subRange.location==NSNotFound) { NSLog(@"字符
    串string B在%@中不存在",parentString1); }
    else {
        NSLog(@"字符串string B在字符串%@中的起始位是%lu,是%lu",parentString1,subRange.location,subRange.length);}

    h.获得一个字符串中指定位置的一个字符 
    [parentString1 characterAtIndex:10]);
    i.把一个字符串所有单词⾸字母大写,其它字⺟小写 
    [parentString1 capitalizedString]);

    j.替换⼀个字符串中的内容
    res=[string1 stringByReplacingCharactersInRange:NSMakeRange(8, 6) withString:@"STRING"];

    k.去掉空格及换行符
    NSString *ook = @"\n \t\t hello there \t\n \n\n";
    NSString *trimmed =[ook stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
    l.前缀,后缀的判断
        前缀
        [testString hasPrefix:@"abc"]
        后缀
        [testString hasSuffix:@"txt"]
    m.从文件中读取字符串
        (1)读当前⺫录下的⽂件 使⽤用类⽅法创建对象
          NSString *str = [NSString
            stringWithContentsOfFile:@"file.txt"
          encoding:NSUTF8StringEncoding error:nil];
        (2) 读指定路径的文件
          NSString *url = @"/Users/ dstliang/Desktop/test.txt";
          NSString *path =[NSStringstringWithContentsOfFile:url encoding:NSUTF8StringEncoding error:nil];

2.NSSMutableString

    NSMutableString :The NSMutableString class declares the programmatic interface to an object that manages a mutable string—that is, a string whose contents can be edited—that conceptually represents an array of Unicode characters. To construct and manage an immutable string—or a string that cannot be changed after it has been created—use an object of the NSString class.

NSMutableString:  NSMutableString 类为一个可编辑的字符串(实际也是一个Unicode 字符数组)管理对象管理声明了一个编程接口。为了构建并管理一个不可变的字符串或一个被NSString 类创建并使用不能被改变的字符串。

1)字符串的创建(应为NSMutableString 是 NSString的子类,所有NSString里面的方法,在NSMutableString里面都有)
    a.创建可变字符串对象 使⽤用类⽅方法创建对象 NSMutableString *string = [NSMutableString stringWithCapacity:45];
    b.可变字符串的初始化
    [string setString:@"ABC"];

2)字符串的增删改查
    a.增加字符串(拼接)
    [string appendString:@"ABC"];
    b.字符串对象的删除
      NSMutableString *welcome =  [NSMutableString
        stringWithCapacity:20];
    c.插⼊字符串insertString
        NSMutableString *insert = [[NSMutableString alloc] initWithFormat:@"ABC"];
        [insert insertString:@"ABD" atIndex: 11];
    d.字符串对象的替换
        NSMutableString *repstring = [[NSMutableString alloc] initWithString:@"ABC"];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值