------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、NSString前后缀的检查和搜索
NSString前后缀的检查
1)判断字符串前缀
判断地址是否是网址
file://
ftp://
https://
http://
2)判断字符串的后缀
判断是否为图片
XXXX.jpg
XXXX.jpeg
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *url = @"http://ios.itcast.cn";
//检测一个字符串是否是一个网址, 否是以 http://或者https://开头
//使用:hasPrefix函数检测前缀
if([url hasPrefix:@"http://"]||[url hasPrefix:@"https://"]){
NSLog(@"是一个网址");
}
else{
NSLog(@"不 一“网址");
}
//检测一个字符串的后缀是否是.jpg
NSString *imgName = @"imgname.jpg";
//使用hasSuffix函数检测后缀
if([imgName hasSuffix:@"jpg"]){
NSLog(@"是一张图片");
}
else{
NSLog(@"不 一“图’");
}
}
return 0;
}
上述代码中我们分别使用了hasPrefix函数和hasSuffix函数检测前缀和后缀。
二、NSRang的使用
NSRang是Foundation框架中比较常用的结构体,它的定义如下:
typedef struct _NSRang{
NSUInteger location;
NSUInteger length;
}NSRang;
//NSUInteger的定义
typedef unsigned int NSInteger;
typedef unsigned int NSUInteger;
NSRang用来表示事物的一个范围,通常是字符串里的字符范围或者数组里的元素范围
NSRang有两个成员
NSUInteger location; 表示范围的起始位置
NSUInteger length; 表示该范围内的长度
比如@"I LOVE IOS"中的“IOS”可以使用location为7,length为3的范围表示。
1、创建NSRang的几种方式
1)通过结构体变量访问成员
2)结构体变量整体赋值
3)定义结构体变量的同时,赋值
4)使用OC中新加的函数NSMakeRange给结构体变量赋值
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSRange rang;
//rang变量的初始化方式
//1)通过结构体变量访问成员
rang.location=3;
rang.length=2;
//2)结构体变量整体赋值
rang=(NSRange){5,3};
//或者
NSRange r2={4,5};
//3)定义结构体变量的同时,直接赋值
NSRange r3={.location=3};
//4)OC中新加的方法
//使用NSMakeRange给结构体变量赋值
//查看结构体变量中的值
NSRange r4= NSMakeRange(3,3);
//传统打印结构体变量方式
NSLog(@"%ld,%ld",r4.length,r4.location);
//使用NSStringFromRange方法打印
NSLog(@"%@",NSStringFromRange(r4));
}
return 0;
}
如上述代码中,在OC中打印结构体变量,可以使用NSStringFromRange方法
2、NSRang的使用查找某个字符串在另一个字符串首次出现的位置,和这个字符串的长度
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//查找某个字符串在另外一个字符串中首次出现的位置
NSString *str1=@"abcdefsjifiosggjgk";
NSString *str2=@"ios";
//查找str2在str1中首次出现的位置
NSRange rang = [str1 rangeOfString:str2];
//使用NSStringFromRange函数,打印”构体变量rang中的值
NSLog(@"%@",NSStringFromRange(rang));
//再定义一个str1中没有的字符串,然后进行查找
NSString *str3=@"java";
//再次进行查找
NSRange rang2 = [str1 rangeOfString:str3];
//打印
NSLog(@"%@",NSStringFromRange(rang2));
}
return 0;
}
上述代码中使用函数rangOfString方法,这个方法返回的是一个NSRang类型返回值。