OC语言day07-11字符串搜索

pragma mark 字符串搜索

pragma mark 概念

/**
 开头 hasPrefix
 结尾 
 包含
 */

pragma mark 代码

#import <Foundation/Foundation.h>
#pragma mark 类

#pragma mark main函数
int main(int argc, const char * argv[])
{
#pragma mark 字符串搜索
    NSString *str = @"http://baidu.com";
    BOOL flag = nil;
#warning 1.是不是 以 xxx 开头 (hasPrefix)
    // 本质就是从字符串的第一个字符开始匹配,只要不匹配 就返回NO
    flag = [str hasPrefix:@"http://"]; // 查看是不是 以 http:// 开头
    NSLog(@"开头 flag %i",flag);
    if (flag)
    {
        NSLog(@"是一个URL");
    }
    else
    {
        NSLog(@"不是一个URL");
    }
    
#warning 2.是不是 以 xxx 结尾
    // 本质就是从字符串的最后一个字符开始匹配,只要不匹配 就返回NO
//    str =  @"http://baidu.gif";
    if ([str hasSuffix:@".gif"]) {
        NSLog(@"是动态图片");
    }
    else
    {
        NSLog(@"不是动态图片");
    }
    
#warning 3.是不是 包含了 xxxx
    // 判断字符串 是否 包含 baidu.com
    // 只要str 中包含该字符串, 那么就会返回该 字符串在 str 中的起始位置 以及 该 字符串的长度
    // range 其实是一个结构体
    /**
     NSUInteger location;   // 在第几位(从0开始数)          baidu.com 在 http://baidu.com
     NSUInteger length;     // 该字符串 有多少位(从1开始数)   baidu.com
     */
    NSRange range = [str rangeOfString:@"baidu.com"];
    NSLog(@"location = %lu, length = %lu",range.location,range.length); // b在第7位 baidu.com 一共有9位
    
    // 例子
    // 如果str 中 没有需要查找的字符串, 那么返回的range的length 是 0
    str = @"lyh";
    NSRange range1 = [str rangeOfString:@"lyh"];
//    NSLog(@"location = %lu, length = %lu",range1.location,range1.length); // b在第1位 bc 一共有2位
    
    // NSNotFound 没有找到
    if (range1.location == NSNotFound) {
        NSLog(@"str 中 没有需要查找的字符串");
    }
    else
    {
        NSLog(@"str 中 有需要查找的字符串");
        NSLog(@"location = %lu, length = %lu",range1.location,range1.length); // b在第1位 bc 一共有2位
        
    }
    
    return 0;
}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容