———————————————————————————————————————————
NSString NSRange的使用
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 首先明确NSRange是一个结构体类型(是表示范围的结构体类型)
// typedef struct _NSRange {
// NSUInteger location;//表示位置
// NSUInteger length;//表示长度
// } NSRange;
// NSRange 对象的几种创建方式
// ①直接对NSRange类型的实例对象赋值
NSRange range1={3,4};
NSLog(@"range1.location = %ld,range1.length = %ld",range1.location,range1.length);
// ②先创建对象,后赋值
NSRange range2;
range2.location=5;
range2.length=6;
NSLog(@"range1.location = %ld,range1.length = %ld",range2.location,range2.length);
// ③调用NSMakeRange方法赋值
NSRange range3=NSMakeRange(11, 12);
NSLog(@"range1.location = %ld,range1.length = %ld",range3.location,range3.length);
}
return 0;
}
———————————————————————————————————————————
NSString 字符串的截取和替换
#import <Foundation/Foundation.h>
void test1()
{
// 字符串的截取
// ①从字符串的指定位置截取到字符串末尾(包含指定位置的字符,下标从0开始)
NSString *str1=@"1234567890";
NSString *newStr1=[str1 substringFromIndex:6];
NSLog(@"newStr1 = %@",newStr1);
// ②从字符串开头截取到字符串的指定位置(不包含指定位置的字符,下标从0开始)
NSString *str2=@"abcdefghijklmnopq";
NSString *newStr2=[str2 substringToIndex:3];
NSLog(@"newStr2 = %@",newStr2);
// ③从字符串的指定位置1 截取 指定长度
NSString *str3=@"12312fsg34fav";
NSRange range={3,6};//涉及到截取位置和长度,自然要用到NSRange了。所以定义一个NSRange类型的对象来设置位置和长度参数
NSString *newStr3=[str3 substringWithRange:range];//再用substringWithRange函数调用我们创建好的NSRange类型的对象以完成截取
NSLog(@"newStr3 = %@",newStr3);
}
void test2()
{
// 小练习: 将下面标签内的字符串取出
// <itcast>王中尧</itcast>
NSString *str=@"<itcast>王中尧</itcast>";
NSRange range=NSMakeRange(8, 3);
NSString *newStr=[str substringWithRange:range];
NSLog(@"newStr = %@",newStr);
}
void test3()
{
// 一个小小的拔高题目:(喜欢的读者可以试着做一下这个题目)
// 统计一段话中,指定词组的个数。
// 有一天,我问医生:“我为什么咳嗽?” 医生说:“你10岁的时候咳嗽吗?” 我说:“不咳嗽。” 医生又问:“你20岁的时候咳嗽吗?” 我说:“不咳嗽。” 医生又问:“你30岁的时候咳嗽吗?” 我说:“不咳嗽。” 医生说:“那你现在确实该咳嗽一下了!”
// 统计上面这段话中 咳嗽 出现的次数
NSString *str=@"有一天,我问医生:“我为什么咳嗽?” 医生说:“你10岁的时候咳嗽吗?” 我说:“不咳嗽。” 医生又问:“你20岁的时候咳嗽吗?” 我说:“不咳嗽。” 医生又问:“你30岁的时候咳嗽吗?” 我说:“不咳嗽。” 医生说:“那你现在确实该咳嗽一下了!”";
int n=0;
while ([str rangeOfString:@"咳嗽"].location!=NSNotFound) {
//先在str中搜索指定字符串,如果字符串的位置可找到,那么说明str中存在一个指定字符串,所以要让n+1
n++;
str=[str substringFromIndex:[str rangeOfString:@"咳嗽"].location+2];
//再在这里截取前一个制定字符串后(不包括前一个指定字符串,所以位置要+2)剩下字符串
//位置+2,2正式“咳嗽”的字符串长度
}
NSLog(@"n = %d",n);
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 字符串的替换
// 这一部分知识很简单,只需要调用一个 对象方法 即可
// stringByReplacingOccurrencesOfString:str1 withString:str2 这个方法是将某字符串中的 所有 str1 替换为 str2
// ①将 <itcast>王中尧</itcast> 中的itcast替换为ios
NSString *str=@"<itcast>王中尧</itcast>";
str=[str stringByReplacingOccurrencesOfString:@"itcast" withString:@"ios"];
NSLog(@"str = %@",str);
// ②将 http:** ios.itcast.cn *ios*images* content_25.jpg 中的 空格去掉,然后将 * 替换为 /
NSString *str2=@"http:** ios.itcast.cn *ios*images* content_25.jpg";
// 显然替换两次即可
str2=[str2 stringByReplacingOccurrencesOfString:@" " withString:@""];//空 表示为 两个双引号之间什么都不写
str2=[str2 stringByReplacingOccurrencesOfString:@"*" withString:@"/"];
NSLog(@"str2 = %@",str2);
}
return 0;
}
———————————————————————————————————————————
NSString NSRange的使用
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 首先明确NSRange是一个结构体类型(是表示范围的结构体类型)
// typedef struct _NSRange {
// NSUInteger location;//表示位置
// NSUInteger length;//表示长度
// } NSRange;
// NSRange 对象的几种创建方式
// ①直接对NSRange类型的实例对象赋值
NSRange range1={3,4};
NSLog(@"range1.location = %ld,range1.length = %ld",range1.location,range1.length);
// ②先创建对象,后赋值
NSRange range2;
range2.location=5;
range2.length=6;
NSLog(@"range1.location = %ld,range1.length = %ld",range2.location,range2.length);
// ③调用NSMakeRange方法赋值
NSRange range3=NSMakeRange(11, 12);
NSLog(@"range1.location = %ld,range1.length = %ld",range3.location,range3.length);
}
return 0;
}
———————————————————————————————————————————
NSString 字符串的截取和替换
#import <Foundation/Foundation.h>
void test1()
{
// 字符串的截取
// ①从字符串的指定位置截取到字符串末尾(包含指定位置的字符,下标从0开始)
NSString *str1=@"1234567890";
NSString *newStr1=[str1 substringFromIndex:6];
NSLog(@"newStr1 = %@",newStr1);
// ②从字符串开头截取到字符串的指定位置(不包含指定位置的字符,下标从0开始)
NSString *str2=@"abcdefghijklmnopq";
NSString *newStr2=[str2 substringToIndex:3];
NSLog(@"newStr2 = %@",newStr2);
// ③从字符串的指定位置1 截取 指定长度
NSString *str3=@"12312fsg34fav";
NSRange range={3,6};//涉及到截取位置和长度,自然要用到NSRange了。所以定义一个NSRange类型的对象来设置位置和长度参数
NSString *newStr3=[str3 substringWithRange:range];//再用substringWithRange函数调用我们创建好的NSRange类型的对象以完成截取
NSLog(@"newStr3 = %@",newStr3);
}
void test2()
{
// 小练习: 将下面标签内的字符串取出
// <itcast>王中尧</itcast>
NSString *str=@"<itcast>王中尧</itcast>";
NSRange range=NSMakeRange(8, 3);
NSString *newStr=[str substringWithRange:range];
NSLog(@"newStr = %@",newStr);
}
void test3()
{
// 一个小小的拔高题目:(喜欢的读者可以试着做一下这个题目)
// 统计一段话中,指定词组的个数。
// 有一天,我问医生:“我为什么咳嗽?” 医生说:“你10岁的时候咳嗽吗?” 我说:“不咳嗽。” 医生又问:“你20岁的时候咳嗽吗?” 我说:“不咳嗽。” 医生又问:“你30岁的时候咳嗽吗?” 我说:“不咳嗽。” 医生说:“那你现在确实该咳嗽一下了!”
// 统计上面这段话中 咳嗽 出现的次数
NSString *str=@"有一天,我问医生:“我为什么咳嗽?” 医生说:“你10岁的时候咳嗽吗?” 我说:“不咳嗽。” 医生又问:“你20岁的时候咳嗽吗?” 我说:“不咳嗽。” 医生又问:“你30岁的时候咳嗽吗?” 我说:“不咳嗽。” 医生说:“那你现在确实该咳嗽一下了!”";
int n=0;
while ([str rangeOfString:@"咳嗽"].location!=NSNotFound) {
//先在str中搜索指定字符串,如果字符串的位置可找到,那么说明str中存在一个指定字符串,所以要让n+1
n++;
str=[str substringFromIndex:[str rangeOfString:@"咳嗽"].location+2];
//再在这里截取前一个制定字符串后(不包括前一个指定字符串,所以位置要+2)剩下字符串
//位置+2,2正式“咳嗽”的字符串长度
}
NSLog(@"n = %d",n);
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 字符串的替换
// 这一部分知识很简单,只需要调用一个 对象方法 即可
// stringByReplacingOccurrencesOfString:str1 withString:str2 这个方法是将某字符串中的 所有 str1 替换为 str2
// ①将 <itcast>王中尧</itcast> 中的itcast替换为ios
NSString *str=@"<itcast>王中尧</itcast>";
str=[str stringByReplacingOccurrencesOfString:@"itcast" withString:@"ios"];
NSLog(@"str = %@",str);
// ②将 http:** ios.itcast.cn *ios*images* content_25.jpg 中的 空格去掉,然后将 * 替换为 /
NSString *str2=@"http:** ios.itcast.cn *ios*images* content_25.jpg";
// 显然替换两次即可
str2=[str2 stringByReplacingOccurrencesOfString:@" " withString:@""];//空 表示为 两个双引号之间什么都不写
str2=[str2 stringByReplacingOccurrencesOfString:@"*" withString:@"/"];
NSLog(@"str2 = %@",str2);
}
return 0;
}
———————————————————————————————————————————