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

原创 2016年01月08日 21:14:46

设置一个路径

        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);


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

NSString的各种用法总结(创建、截取、判断比较、转化数据类型、拼接、替换、添加、追加、读取、写入、删去、改变)

1、创建字符串 1)NSSring *str = @”adf”; 2)NSString *str1 = [NSString new]; NSString *str2 = [[NSString a...

NSString的各种用法总结(创建、截取、判断比较、转化数据类型、拼接、替换、添加、追加、读取、写入、删去、...

1、創建字符串 1)NSSring *str = @”adf”; 2)NSString *str1 = [NSString new]; NSString *str2 = [[NSSt...

Java常用读写类的速度比较

本文读写的内容为简单的字符串,主要比较了BufferedWriter(BufferedReader)、BufferedOutputStream(BufferedInputStream)、ByteBuf...

Java常用读写类的速度比较

本文比较了BufferedWriter(BufferedReader)、BufferedOutputStream(BufferedInputStream)、ByteBuffer(write&read)...

C#读写xml文件的常用方法

已知有一个XML文件(bookshop.xml)如下: xml version="1.0" encoding="gb2312" ?> bookshop> book gen...

ios中NSString、NSArray、NSData、NSDictionary本地读写

-(NSString *)documentPath { //获得沙盒中Document的路径 NSArray *pathes = NSSearchPathForDirectoriesI...

Objective-C---3---NSString的常用方法

全都是关于NSString 的方法,只是部分常用的方法,内容较多

iPhone之NSString常用方法介绍

今天我们介绍iPhone开发的NSString与NSMutableString的常用方法。NSString 的 Class Reference 非常庞大,请参考官方文档: https://d...

NSString 常用方法

一、NSString初始化(创建) 1、//最简单粗暴创建方式   NSString * str = @"hello world";    //创建了一个字符串,@"hello wor...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)