最新消息:文章中包含代码时,请遵守代码高亮规范!

iOS基础-NSString字符串的常见使用[原创]

iOS 石, 稳 222浏览 0评论
引言:

在日常的开发中,我们在的Foundationl框架中用到的最多的就是NSString了,不管是界面搭建,还是网络上的数据传递。NSString都是充当着绝对的主角和基石。所以对NSString的熟练程度自然是不言而喻了。
所以对于刚刚步入ios开发的我来说总结一篇关于NSString的文章自然就显得很重要。


(一)NSString的一些用法介绍

一、最常用一些方式

1.字符串最常见的创建方式

//NSString的使用
char *s = "hello Objective-C" ;
NSString * str = @"hello " ;

2.字符其他的串的创建方式

//方式一:系统会自动对象并且会自动释放内存
NSString * str2 = @"hello" ;
//方式二:手动创建,手动释放内存
NSString * str3 = [[NSString alloc]init] ;
str3 = @"yayuanzi" ;

3.格式化字符串

//格式化字符串
int a = 5 ;
int b = 6 ;
NSString *number = [NSString stringWithFormat:@"a= %d , b = %d",a,b] ;

二、较为常用的方式

1.拼接字符串

//将str3拼接到str2上
NSString *str4 = [str2 stringByAppendingString:str3] ;
NSLog(@"str4 = %@",str4) ;

2.大小写的转换

NSString * str5 = @"yaYUANzi";
        //转换小写 lowercaseString
        NSString *str6 = [str5 lowercaseString];
        //转换大写 uppercaseString
        NSString *str7 = [str5 uppercaseString] ;
        NSLog(@"str6 = %@ , str7 = %@ ",str6,str7) ;

3.前缀和后缀的判断

NSString *str8 = @"www.yayuanzi.com" ;
        //判断前缀 hasPrefix
BOOL hasPreFix = [str8 hasPrefix:@"www."] ;
        if (hasPreFix) {
            NSLog(@"有对应的www前缀") ;
        }else{
            NSLog(@"没有对应的www前缀") ;
        }
        //判断后缀 hasSuffix
        BOOL hasSuffix = [str8 hasSuffix:@".com"] ;
        if (hasSuffix) {
            NSLog(@"有对应的com前缀") ;
        }else{
            NSLog(@"没有对应的com前缀") ;
             }

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

 NSString *str9 = @"www.yayuanzi.com" ;
        NSString *str10 = @"www.yayuanzi.com" ;
        if ([str9 isEqualToString: str10]) {
            NSLog(@"两个字符串相同") ;
        }else{
            NSLog(@"两个字符串不相同") ;
        }

        //比较字符串
       NSComparisonResult方法:这个方法比较特殊,后面单独的回去说.

5.字符串的分割

NSRange的定义可以理解为从location开始的length个元素
typedef struct _NSRange {
NSUInteger location; //表示对象开始的下标
NSUInteger length; //表示对象长度
} NSRange;

 //按照指定的字符分割字符串
        NSString *str11 = @"welcome,to,ya,yuan,zi" ;
        NSArray * strArray = [str11 componentsSeparatedByString:@","] ;
        for (NSString *str in strArray) {
            NSLog(@"%@",str) ;
        }
        NSLog(@"----------按照范围截取字符串") ;
        //按照范围截取字符串
        //1.按照指定范围
        NSRange range = NSMakeRange(1, 10) ;
        NSString *str12 = [str11 substringWithRange:range] ;
        NSLog(@"str12 = %@",str12) ;
        //2.从某一位开始截取到最后一位
        NSString *str13 = [str11 substringFromIndex:3] ;
        NSLog(@"str13 = %@",str13) ;
        //3.从开头开始截取到某一位
        NSString *str14 = [str11 substringToIndex:4] ;
        NSLog(@"str14 = %@",str14) ;
        //4.将字符串拆分成每一个字符
        for (int i = 0; i < [str11 length]; i++) {
            NSLog(@"%c",[str11 characterAtIndex:i]) ;
        }

6.字符串的查找

NSString *str15 = @"yayuanziya" ;
        //查找指定字符串的位置
NSRange range1 = [str15 rangeOfString:@"ya"] ;
NSLog(@"range1.location:%ld range1.length:%ld",range1.location,range1.length) ;

7.字符串的替换

//替换
        NSString *str16 = @"hello yayuanzi" ;
        //替换某一个范围的内容
        NSString *str17 = [str16 stringByReplacingCharactersInRange:NSMakeRange(0, 5) withString:@"你好"] ;
        NSLog(@"str17 = %@",str17) ;
        //用指定的字符串替换原有字符串的子串
        NSString *str18 = [str16 stringByReplacingOccurrencesOfString:@"hello" withString:@"你好"] ;
        NSLog(@"str18=%@",str18) ;

8.通过字符串读取文件

文件的来源:1.本地文件 2.网络文件

NSString *str19 = @"http://www.yayuanzi.com" ;
//路径类 NSURL
//网络路径
NSURL * httpURL = [NSURL URLWithString:str19] ;
//本地路径
NSURL *fileURl = [NSURL fileURLWithPath:str19] ;
        
//读取网络文件
NSString *httpStr = [NSString stringWithContentsOfURL:httpURL encoding:NSUTF8StringEncoding error:nil] ;
NSLog(@"httpStr = %@ ",httpStr) ;
//读取本地的文件
NSString *fileStr = [NSString stringWithContentsOfFile:@"/Users/123/Desktop/test.txt" encoding:NSUTF8StringEncoding error:nil] ;
NSLog(@"fileStr = %@",fileStr) ;
        
//写入本地文件
NSString *str20 = @"hello yayuanzi" ;
BOOL isOK = [str20 writeToFile:@"/Users/123/Desktop/test.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil] ;
if (isOK) {
    NSLog(@"文件写入成功") ;
}else{
    NSLog(@"文件写入失败") ;
     }

9.C和OC之间的转换

//将c转化为oc
        NSString *str1 = [NSString stringWithUTF8String:s] ;
        NSLog(@"str1 = %@",str1) ;
        //将oc转化为c
        NSLog(@"c = %s",[str UTF8String]) ;

10.把字符串转换为二进制数据

NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding] ;

11.将二进制数据转换为字符串

NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding] ;

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/25075.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者Annwn的打赏,我们会更加努力!    如果您想成为作者,请点我

发表我的评论
取消评论

表情