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简介
1)URL概念
URL的全称是Uniform Resource Locator(统一资源定位符)
URL是互联网上标准资源的地址
互联网上的每个资源都有一个唯一的URL,它包含的信息指出资源的位置
根据一个URL就能找到唯一的一个资源
2)URL的格式
基本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.NSString从URL中创建
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.NSString与NSMutableString区别
NSMutableString是NSString的子类;
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"];
- OS笔记:第十三篇 Foundation NSString与NSMutableString
- Foundation中的NSMutableString与NSString
- OC学习笔记之Foundation框架NSString与NSMutableString
- OC学习笔记14--Foundation之NSString与NSMutableString常用方法
- 【Foundation学习笔记】常用类--NSString和NSMutableString
- OC的Foundation框架-字符串(NSString与NSMutableString)
- 简单介绍Foundation的类之NSstring与NSMutableString
- object-c中Foundation框架-NSString与NSMutableString
- Foundation框架---NSString 和 NSMutableString
- Foundation 之 NSString和NSMutableString
- objective-c - 基础篇 - NSString与NSMutableString
- NSString与NSMutableString用法
- NSString与NSMutableString
- NSString与NSMutableString
- 21(补充)-NSString,NSMutableString -foundation
- 【Foundation】17-字符串NSString和NSMutableString
- Foundation框架中的字符串(NSString/NSMutableString)
- Foundation框架 - NSString类 、NSMutableString类
- 日拱一卒(五十)
- web_find
- 创业书籍
- 【JAVA学习】1.语言概述+生态圈
- build rnnlib
- OS笔记:第十三篇 Foundation NSString与NSMutableString
- UICollectionView入门--使用系统UICollectionViewFlowLayout布局类
- 获取工程或工程下的文件的路径
- 第一章:关系型数据库的存储方式
- spring学习总结(1.1)—IOC的理解
- Android应该掌握的技能
- PHP中return返回数组的一点用法
- 【算法笔记】伸展树 Splay Tree
- P122第14题(倒叙)