黑马程序员——OC语言日志——NSString前后缀的检查和NSRang的使用

本文介绍了Objective-C中NSString如何检查前后缀,如判断网址和图片后缀,并详细讲解了NSRange的使用,包括其结构、成员及创建方法,以及在字符串中查找子串的方法。
摘要由CSDN通过智能技术生成

------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类型返回值。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值