小白学开发(iOS)OC_ 字符串的获取 (2015-08-11)

时间:2022-09-06 21:16:38

//

//  main.m

//  字符串的获取

//

//  Created by admin on 15/8/13.

//  Copyright (c) 2015 admin. All rights reserved.

//


#import <Foundation/Foundation.h>

/*

    1. 获取字符串长度

    2. 根据字符串索引获得单个字符    //这里的索引 就是下标

    3. 根据索引获得一个字符串

    4. 根据子串获得子串在另一个字符串中的索引位置

    5. 根据字符串,获得字符串的范围

 */



int main(int argc,const char * argv[]) {

    @autoreleasepool {

//  1. 获取字符串长度

       NSString *str1 = @"www.baidu.com";

       NSUInteger length = [str1 length];  // NSUIteger 表示的是一个无符号的整型

       NSLog(@"length = %lu",length);

        

/*  2. 根据索引获得字符串中的单个字符

       注意:

     > 给定的索引值必须在0到长度之间,否组会导致异常Range or index out of bounds

     > 如果索引值为负,那么获得的值是个负数

 */

       unichar c = [str1 characterAtIndex:0];

       NSLog(@"获得的字符串是:%c",c);

        

//   3. 根据索引值获得字符串的一个子串

        //从索引开始,包括索引取后面的字符串

       NSString *tmpstr2 = [str1 substringFromIndex:3];

        //从开头取字符串到索引位置,不包括索引

       NSString *tmpstr3 = [str1 substringToIndex:5];

        // NSRange是个结构体,取字符串的范围,第一个参数为从哪个索引值开始,第二个参数表示取多长

       NSRange s = {6,3};

       NSString *tmpstr4 = [str1 substringWithRange:s];

       NSLog(@"tmpstr2 = %@",tmpstr2);

       NSLog(@"tmpstr3 = %@",tmpstr3);

       NSLog(@"tmpstr4 = %@",tmpstr4);

//  4. 获得子串在另一个字符串中的索引位置

       NSString *tmpstr5 = @"bai";

        // 在字符串中寻找子串,并将索引起始位置location和长度length存入到结构体中

       NSRange tmpRange = [str1 rangeOfString:tmpstr5];

       //  分别打印

       NSLog(@"location = %lu, length = %lu",tmpRange.location,tmpRange.length);

        //  可以使用NSStringFromRange 把一个Range结构体转换成字符串

       NSString *tmpstr6 = NSStringFromRange(tmpRange);

       NSLog(@"tmpstr6 = %@",tmpstr6);

        

        //  判断是否找到

        if (tmpRange.location ==NSNotFound) {//enum {NSNotFound = NSIntegerMax};

            NSLog(@"tmpstr5不在str1");

        }else

        {

           NSLog(@"rangeOfString %@",tmpstr6);

        }

//  5. 获得子串索引范围

        // 第一个参数为子串,第二个参数为 选择搜索的方法

        NSRange tmpRange2 = [str1rangeOfString:@"com"options:NSCaseInsensitiveSearch];

       NSRange tmpRange3 = [str1 rangeOfString:@"com"];

       NSLog(@"tmpRange2 = %@",NSStringFromRange(tmpRange2));

       NSLog(@"tmpRange3 = %@",NSStringFromRange(tmpRange3));

    }

   return 0;

}