NSString常用方法(读写、比较、搜索、动态截取、替换、删除)

设置一个路径

        NSString *path = @"/Users/kev/Desktop/stu.txt";

        NSURL *url = [NSURL fileURLWithPath:path];

        NSError *error = nil;//显示详细的错误信息

读取文本里的内容

        NSString *s1 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];

        NSLog(@"%@",s1);

        将str字符串写入文本

        NSString *str = @"are you sure?";

        [str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:&error];

isEqualToString 用于比较内容是否相等,下面简单使用isEqualToString进行登录验证

       

        NSString *user = @"laowang";

        NSString *pad = @"123";//初始一个账号和密码

        char inputUser[50];

        char inputPad[50];//键盘缓冲区

        

        BOOL flag = 0;

        do {

            NSLog(@"\n请输入用户名:");

            scanf("%s",inputUser);

//将输入的字符串封装到NS类型的字符串

            NSString *nUser = [NSString stringWithUTF8String:inputUser];

            

            NSLog(@"\n请输入密码:");

            scanf("%s",inputPad);

            NSString *nPad = [NSString stringWithUTF8String:inputPad];

            

            NSLog(@"用户:%@",nUser);

            NSLog(@"密码:%@",nPad);

            if ([nUser isEqualToString:user]&&[nPad isEqualToString:pad]) {

                NSLog(@"登录成功,正在进入系统...");

                flag = 1;

            }

            else{

                NSLog(@"\n用户名或密码错误,请重新输入:");

                flag = 0;

            }

        } while (flag==0);

       

        

        compare的使用,里面有三种判断

        //NSOrderedAscending  NSOrderedSame  NSOrderedDescending

        NSString *str1 = @"laowang";

        NSString *str2 = @"zhangsan";

        switch ([str1 compare:str2]) {

            case NSOrderedAscending:

                NSLog(@"升序");

                break;

            case NSOrderedSame:

                NSLog(@"相等");

                break;

            case NSOrderedDescending:

                NSLog(@"降序");

                break;

            default:

                break;

        }


hasPrefix:判断是否以@“xxx”开头

hasSuffix:判断是否以@“xxx”结尾

        NSString *str = @"http://www.baidu.com";

         //判断以什么开头

        if ([str hasPrefix:@"http://"]) {

            NSLog(@"是一个URL");

        }

        else{

            NSLog(@"不是一个URL");

        }

         //判断以什么结尾

        if ([str hasSuffix:@".com"]) {

            NSLog(@".com结尾的URL");

        }

        else{

            NSLog(@"不是.com结尾的URL");

        }

        

       

        NSRange搜索

        NSString *str1 = @"hope is good thing";

        NSRange range = [str1 rangeOfString:@"is"];

        if (range.location==NSNotFound) {

            NSLog(@"没有这个单词");

        }

        else{

            NSLog(@"从第%lu个开始,长度为%ld",range.location,range.length);

        }

        

        NSRange截取

        NSString *str2 = @"<head>iPhone6s</head>";

从第六个开始截取,截取的长度为8个字符

        NSRange range1 = {6,8};

        NSString *newStr = [str2 substringWithRange:range1];

        NSLog(@"\n来自%@客户端",newStr);

        这种截取方式不灵活,如果要修改标签,那么截取范围也会修改,所以我们可以使用下面的动态截取

        

        NSRange动态截取

        NSString *s1 = @"<head>iPhone6s</head>";

        NSInteger local1 = [s1 rangeOfString:@">"].location+1;//表示从第六个下标开始

        NSInteger local2 = [s1 rangeOfString:@"<" options:NSBackwardsSearch].location;

options:NSBackwardsSearch表示从后面往前查询,因为NSRange查找到第一个'<'便不会向后查找,这时代码就会报错,

也可以使用local1的方式直接查找‘</’

要截取的长度

        NSInteger length = local2-local1;

        NSRange range = NSMakeRange(local1, length);

        NSString *newS1 = [s1 substringWithRange:range];

        NSLog(@"%@",newS1);

       

        

        字符串替换

        NSString *str = @"  www/*baidu/*com  ";

        NSString *newStr = [str stringByReplacingOccurrencesOfString:@"/" withString:@"."];

        去掉 ‘*’

      NSString *newStr1 = [newStr stringByReplacingOccurrencesOfString:@"*" withString:@""];

        NSLog(@"%@",newStr1);

       

      去掉首尾空格

        NSCharacterSet *set = [NSCharacterSet whitespaceCharacterSet];

        NSString *newStr2 = [newStr1 stringByTrimmingCharactersInSet:set];

      NSLog(@"%@",newStr2);

        

      利用range删除可变字符串的字符

      NSMutableString *strM = [NSMutableString stringWithFormat:@"www.baiduASD.com"];

        NSRange range = [strM rangeOfString:@"ASD"];

如果搜索到“ASD”就将其删除,但是这种方法不能将字符串中的所有“ASD”删除,只会删除遇到的第一个

      [strM deleteCharactersInRange:range];

      NSLog(@"%@",strM);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值