Objective-C 字符串与可变字符串
知识点
1.NSString 类的使用
2.NSMutableString 类的使用
==========================================
NSString
1.NSString对象和C类型字符串做对比
// OC字符串是对象 c字符串只是单个字母拼接
// oc字符串定义需要@ c字符串不需要
// 打印的时候OC字符串%@ c字符串打印%s
2.c语言字符串和NSString的转换
stringWithCString:encoding:函数
作用:将c字符串按照指定的编码方式转换为oc字符串对象
3.NSString的创建方式
1)根据现有的c字符串创建
2)stringWithFormat函数拼接字符串<重要>
作用:根据指定格式创建
3)initWithUTF8String函数
作用:通过手动内存分配,并且以C字符串初始化NSString对象
4)stringWithString函数
作用:通过现有的NSString对象的到一个一样的字符串对象
==================================
NSString的常用方法
1.比较两个字符串是否相等
思考:是否可以通过s1 == s2比较两个字符串相等
isEqualToString函数<重要>
作用:比较2个字符串是否相等,如果相等返回YES,不等返回NO
2.如何得到字符串的长度
1)length函数<重要>
作用:取得指定字符串对象的长度,返回NSUInteger
3.字符串转化为数字
- (double)doubleValue;
- (float)floatValue;
- (int)intValue;
- (NSInteger)integerValue;
- (long long)longlongValue;
- (BOOL)boolValue;
4.大小写转化
- (NSString *)uppercaseString; // 转成大写
- (NSString *)lowercaseString; // 转成小写
5.判断前后缀
后缀:hasSuffix
前缀:hasPrefix:
6字符串拼接
1) stringByAppendingString 简单字符串拼接
2)stringByAppendingPathComponent 拼接路径字符串
7.如何比较两个字符串的大小<重要>
compare函数 s1 == s2
作用:比较两个字符串对象的大小,返回一个NSComparisonResult的枚举结果
NSOrderedAscending = -1表示左侧数值小于右侧;
NSOrderedSame = 0 则相等
NSOrderedDescending = 1表示右侧数值小于左侧;
8.如何在一段字符串中提取出子字符串
1)characterAtIndex函数<重要>
作用:取出指定位置中的字符
2)substringFromIndex函数
作用:从指定位置开始向后提取字符串
3)substringToIndex函数
作用:提取从开头到指定位置的字符串
4)如何在一段字符串中查找另一个字符串
1)rangeOfString函数@"hello world" @"world"
2)从左边开始查找: rangeOfString<重要>
从后面开始查找;rangeOfString options:NSBackwardsSearch
作用:查找目标指定字符串是否在目标字符串中
如果存在,返回的NSRange中会包含起始位置和长度
如不存在,NSRange.location == NSNotFound
练习:1.查找"Hi,I am fine,and you"中"fine"字符串的位置
5)substringWithRange<重要>
作用:提取一个区间位置的字符串
NSRange结构体和NSMakeRange函数
作用:创建一个区间,用以告诉字符串对象要提取的子串范围
练习: 1.从"Hi,I am fine,and you"中提取出"I am fine,and you"子串
2.从"Hi,I am fine,and you"中提取出"Hi,I am fine"子串
3.从"Hi,I am fine,and you"中提取出"I am fine"子串
—— 数下标———
sub*****
—— 不数下标——
range***
sub****
练习:
在一个字符串里查找另外一个字符串出现的次数;
NSString *str1 = @“我是一个字符串 字符串 字符串”
NSString *Str2 = @“字符串”
=================================
NSMutableString
1.NSMutableString和NSString的关系
2.如何创建一个NSMutableString对象
1)string函数
作用:创建一个空的可变字符串对象 空串
=================================
NSMutableString的常用方法
1.如何重置NSMutableString的内容
1)setString函数
作用:将当前字符串中的内容设置为新的字符串
2.如何在字符串后面添加内容
1)appendString函数
作用:在当前字符串末尾追加新的字符串
2)appendFormat函数<重要>
作用:通过指定格式追加
练习:1.分别定义姓名,年龄,性别变量并初始化
最后将该些变量通过上述方法追加到"hello"字符串后
3.如何在字符串中插入内容<重要>
1)insertString:atIndex函数
作用:将指定字符串插入到目标字符串指定位置
4.如何删除字符串中的内容
1)deleteCharactersInRange函数
作用:删除NSRange指定范围中的字符串
5.如何修改其中一段内容<重要>
1)replaceCharactersInRange:withString函数
作用:将NSRange指定范围中的字符串替换为指定内容
练习:
字符串的逆序:
NSString *s = @“fire in the hole”;
@“eloh eht ni erif”;
length , char*****, append****
思路: 从字符串最后一个字符开始获取,一个字一个字地获取出来, 添加到可变字符串后面;
字符串单词逆序:
@“fire in the hole”;
每一个单词以一个空格隔开:
@“hole the in fire”;
rangeOf: options:NSBackWarkSearch, substringFromIndex: , appendString, substringToIndex:
while(1)
{
}
思路: 从后面开始查找空格“ ”, 获取后面字符串,添加到一个可变字符串后面, 获取子串继续查找;
==================================
类中的description方法
description方法是NSObject类的一个实例方法,所有的objective-C类都是NSObject类的子类,因此所有的Objective-C对象都具有description方法。该方法通常用于实现自我描述信息的打印。
description方法的默认实现是返回这样的格式: <类名: 地址>;
重写:
- (NSString *)description
{
return oc的字符串;
}
=========================================================
作业:
1、在字符串welcome to qianfeng中删除to
2、hello world中间插入qianfeng: hello qianfeng world
3、@"When I was young, I loved a girl on neighbour class." 替换部分成:
When I was teacher, I rather teaching the students on neighbour class.
4、在字符串When I was young, I loved a girl on neighbor class.里找出 字串was young,I loved a girl
5、把三个字符串My name is Sean,I come from China,I am 45 years old连接起来成一个字符串;
6、welcome to guangzhou 根据范围找出字串come
7、welcome to guangzhou 找出字符串guangzhou字符串的范围;