OS笔记:第十三篇 Foundation NSString与NSMutableString

来源:互联网 发布:阿里云服务器重装系统 编辑:程序博客网 时间:2024/05/26 12:56


  

第一节         NSString

 

 1.NSString的创建方式

 NSString的创建方式比较多

 1) 最直接的方式(这是常量字符串)

 NSString *str = @"ab"; 

 

 2) 格式化的方式

 NSString *str = [NSString stringWithFormat:@"%@", @"rose"];

 NSString *str1 = [[NSString alloc] initWithFormat:@"%d", 8];

 

 3) 从文件中读取

 NSError *error = nil; // 存储错误信息

 // 读取文件内容

 NSString *str = [NSString stringWithContentsOfFile:@"/Users/apple/Desktop/test.txt" encoding:NSUTF8StringEncoding error:&error];

 // 如果有错误信息

 if (error)

 {

    NSLog(@"读取失败错误原因是:%@", [error localizedDescription]);

 } 

 else

 { // 如果没有错误信息

    NSLog(@"读取成功文件内容是:\n%@", str);

 }

 

 2.URL简介

 1URL概念

     URL的全称是Uniform Resource Locator(统一资源定位符)

     URL是互联网上标准资源的地址

     互联网上的每个资源都有一个唯一的URL,它包含的信息指出资源的位置

     根据一个URL就能找到唯一的一个资源

 2URL的格式

     基本URL包含协议、主机域名(服务器名称\IP地址)、路径

     如: http://WWW.baidu.com/tupian

     即: URL == 协议头://主机域名/路径

 3)常见的URL协议头(URL类型)

 http\https :超文本传输协议资源网络资源

 ftp :文件传输协议

 file :本地电脑的文件


 3.URL的创建

 1)传入完整的字符串创建

 NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/test1.txt"];

 2)通过文件路径创建(默认就是file协议的)

 NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/test.txt"];


 4.NSStringURL中创建

 1)从URL中读取

 // 用来保存错误信息

 NSError *error = nil;

 // 创建URL路径

 NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/test1.txt"];

 // 读取文件内容

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

 // 如果有错误信息

 if (error) 

 {

    NSLog(@"读取失败错误原因是:%@", [error localizedDescription]);

 } 

 else 

 { // 如果没有错误信息

    NSLog(@"读取成功文件内容是:\n%@", str);

 }

 

 5.NSString的存储

 1)可以将NSString存储到一个文件中

    NSString  *str = @"存储的文本";

    [str writeToFile:@"/Users/apple/Desktop/test.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];

    // atomically:是否是原子 (如果是YES,如果没有写入完毕出错了就一个字都不写,如果NO表示写入多少是多少)

    [str writeToURL:[NSURL URLWithString:@"file:///Users/apple/Desktop/test.txt"] atomically:YES encoding:NSUTF8StringEncoding error:nil];

 

 6.NSString的转换

 //  NSString 不可变,一创建就不可以改变它的内容了

 NSString *str = @"I am a student";

 //  全部转成大写 uppercase 大写

 //  凡是通过NSString 方法返回的字符串都是一个全新的字符串

 NSString *upper = [str uppercaseString];

 //  全部转小写 lower 小写

 NSString *lower  = [str lowercaseString];

 //  每一个单词首字母大写

 NSString *cap  = [str capitalizedString];

 

 7.字符串的比较

 NSString * str = @"abcd";

 NSString * str1 = [NSString stringWithFormat:@"abcs"];

 //   判断两个字符串是不是同一个字符串

 if (str == str1)

 {

    NSLog(@"同一个字符串");

 }

 // 判断内容是否相同

 BOOL isEqual  = [str isEqualToString:str1];

 if (isEqual) 

 {

    NSLog(@"str 与 str2的内容相同");

 }

 NSString *str =  @"1234";

 NSString *str1 = @"1234";

 //   比较字符串大小 compare 比较

 NSComparisonResult result = [str compare:str1];

//  NSOrderedAscending  -1  升序 str < str1

//  NSOrderedSame,      0   相同 str = str1 (内容相同)

//  NSOrderedDescending 1   降序 str > str1

// 对于枚举类型判断一般用switch

    switch (result) {

        case NSOrderedAscending:

            NSLog(@" str < str1");

            break;

        case NSOrderedSame:

            NSLog(@" str = str1");

            break;

        case NSOrderedDescending:

            NSLog(@" str > str1");

            break;

        default:

            break;

    }

    //  NSNumericSearch 按照数值比较

    //  NSCaseInsensitiveSearch 不区分大小写的

    result  = [str compare:str1 options:NSNumericSearch];

 

 8.字符串搜索

 NSString *str = @"this is NSString";

 // 判断字符串是不是以xx开头  Prefix 前缀

 BOOL isThis  = [str hasPrefix:@"this"];

 if (isThis) 

 {

    NSLog(@"这个字符串是以this开头");

 }

 // 判断字符串是否以xx结尾  Suffix 后缀

 BOOL isPng  = [str hasSuffix:@".txt"];

 // is在字符串中的位置

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

 // typedef struct _NSRange {

 // NSUInteger location; 起始位置

 // NSUInteger length;   长度

 // } NSRange;

 ->创建NSRange

 // 第一种方式,定义结构体变量的同时初始化

 NSRange ran = {11,5};

 // 第二种方法,先定义结构体变量

 NSRange range;

 // 强转

 range = (NSRange){11,5};

 // 一个一个成员赋值

 range.location = 11;

 range.length = 5;

 // 第三种方式:通过系统提供的NSMakeRange方法

 NSRange range1 = NSMakeRange(11, 5);

 NSRange range2;

 range2 = NSMakeRange(11, 5);

 

 9.字符串截取

 // xml 文件格式(xml,json

 // 练习  从 <itcast>传智播客</itcast> 中把”传智播客“截取出来 使用三种方法

 NSString *str = @"<itcast>传智播客</itcast>";

 // 第一种方式:

 NSString *subStr  = [str substringWithRange:NSMakeRange(8, 4)];

 NSLog(@"%@",subStr);

 //  第二种方式:<itcast>传智播客</itcast> -》传智播客</itcast> -》 传智播客

 NSRange beign  = [str rangeOfString:@">"];

 //    传智播客</itcast>

 subStr  = [str substringFromIndex:beign.location + 1];

 NSRange end = [subStr rangeOfString:@"</"];

 subStr  = [subStr substringToIndex:end.location];

 NSLog(@"%@",subStr);

 //  第三种方式:先找到开始和结束的索引位置,然后截取

 NSRange start  = [str rangeOfString:@">"];

 NSRange finish = [str rangeOfString:@"</"];

 NSUInteger s = start.location + 1;

 NSUInteger l = finish.location - s;

 //  截取子串

 NSString *suStr = [str substringWithRange:NSMakeRange(s, l)];

 NSLog(@"%@",suStr);

 

10.字符串替换

 // 把字符串中所有的*替换为“/

 NSString *str = @"http:**ios.itcast.cn*images*nx.png";

 //  Replacing 替换

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

 NSLog(@"%@",rs);

 NSString *str1 = @"www.itcast";

 //  在后面追加字符串 Appending添加

 NSString *newStr  = [str1 stringByAppendingString:@".cn"];

 NSLog(@"%@",newStr);

 

 11.其他用法

 // 字符串转基本数据类型

 NSString *intStr = @"100";

 int i = intStr.intValue;

 NSLog(@"%d",i);

 //   OC 字符转C语言的字符

 //   const 如果在*前面表示指针所指向的内容是不可改变的

 //   const 如果在*后面表示指针的指向不可以改

 const char *str  = [intStr UTF8String];

 

12.去除空格

 NSString *str = @" www . itcast . cn ";

 // 去除所有空格

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

 NSLog(@"%@",str);

 NSLog(@"%@",newStr);

 // 去除两头空格 Trimming:去掉头尾的某些东西

 newStr = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

 NSLog(@"%@",newStr);


                            第二节      NSMutableString

 

 1.NSStringNSMutableString区别

 NSMutableStringNSString的子类;

 NSString 是不可变的,一创建它的内容就不能改变了;

 NSMutableString 是可变的字符串,创建完毕后还可以对它内容进行修改。

 

 2.NSMutableString的基本使用

 // 创建一个空的可变字符串

 NSMutableString *strM = [NSMutableString string];

 // 在原来的字符串基础上,向后面拼接一个字符串,不会产生一个新的字符串

 [strM appendString:@"abc"];

 [strM appendFormat:@" %d + %d = %d",1,2,3];

 // 删除某个区间字符串

 [strM deleteCharactersInRange:NSMakeRange(2, 1)];

 // 插入字符串

 [strM insertString:@"d" atIndex:2];

 // 字符串替换

 [strM replaceOccurrencesOfString:@"ab" withString:@"cd" options:NSCaseInsensitiveSearch range:NSMakeRange(0,10)];

 // 使用一个新的子串替换某个区间字符串

 [strM replaceCharactersInRange:NSMakeRange(1, 2) withString:@"efh"];

 

 

 

0 0
原创粉丝点击