字符串的其他方法

来源:互联网 发布:乐乎公寓官网电话 编辑:程序博客网 时间:2024/06/05 06:54


#import <Foundation/Foundation.h>


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

    @autoreleasepool {

        // insert code here...

        //NSLog(@"Hello, World!");

        

        //字符串其他的方法

        //1.字符串的长度

        //c语言的字符串是根据字节来计算长度

        //OC语言是根据具体国家的一个文字为单位计算长度

        char *s = "1234";

        unsigned long l =strlen(s);

        

        NSString *str1 = @"中国欢迎你";

        NSUInteger len = str1.length;

        NSLog(@"%ld", len);

        

        //2.获取其中一个字符的方法

        NSString *str2 = @"chinese";

        char c = [str2 characterAtIndex:1];

        NSLog(@"%c", c);

        

        //3.字符串比较是否相等

        NSString *str31 = @"hello";

        NSString *str32 = @"hell";

        BOOL flag = [str31 isEqualToString:str32];

        if (flag) {

            NSLog(@"相等");

        }else{

            NSLog(@"不相等");

        }

        

        //4.比较两个字符串

        NSString *str41 = @"hello";

        NSString *str42 = @"hELlo";

        

        //NSComparisonResult是一个枚举类型,表示两个字符串比较的结果(按照字符的顺序)

        //NSOrderedSame表示相等

        //NSOrderedAscending表示升序(前面的字符在ASCALL码表里面排在前面)

        //NSOrderedDescending表示降序

        NSComparisonResult cr = [str41 compare:str42];

        if (cr == NSOrderedSame) {

            NSLog(@"相等");

        }else if (cr ==NSOrderedAscending){

            NSLog(@"升序");

        }else if (cr ==NSOrderedDescending) {

            NSLog(@"降序");

        }

        

        /*

         第一个参数:被比较的字符串

         第二个参数:字符串比较的选项(忽略大小写)

         //NSCaseInsensitiveSearch

         */

        NSComparisonResult cr2 = [str41compare:str42 options:NSCaseInsensitiveSearch];

        if (cr2 == NSOrderedSame) {

            NSLog(@"===相等");

        }else if (cr2 ==NSOrderedAscending) {

            NSLog(@"===升序");

        }else if (cr2 ==NSOrderedDescending) {

            NSLog(@"===降序");

        }

        

        //5.获取字符串子串的位置

        /*

         NSRange:表示字符串的位置

         typedef struct {

            NSUInteger location;//子字符串开始的位置

            NSUInteger length;//子字符串的长度

         }NSRange;

         */

        //@"hello iOS"  ->  @"llo" NSRange(2,3)

        NSString *str5 = @"hello iOS hello";

        //子字符串

        NSString *subStr = @"llo";

        //获取子串的位置(是第一个满足的位置)

        NSRange range = [str5 rangeOfString:subStr];

        

        //如果找不到子串,location返回NSNotFound

        if (range.location != NSNotFound) {

            //找到子串,才打印位置

            NSLog(@"range={location:%ld,length:%ld}",range.location, range.length);

        }

        

        /*

         第一个参数:子串

         第二个参数:字符串比较的选项

         //NSBackwardsSearch表示从后面网前面找

         */

        NSRange rang2 = [str5 rangeOfString:subStr options:NSBackwardsSearch];

        if (rang2.location != NSNotFound) {

            NSLog(@"rang2={location:%ld,length:%ld}", rang2.location,rang2.length);

        }

        

        //6.判断字符串是否有某个前缀

        NSString *str61 = @"hello";

        NSString *preStr = @"ll";

        

        BOOL flag1 = [str61 hasPrefix:preStr];

        if (flag1) {

            NSLog(@"有前缀");

        }else{

            NSLog(@"没有这个前缀");

        }

        

        //7.判断字符串是否有后缀

        NSString *sufStr = @"ll";

        

        BOOL flag2 = [str61 hasSuffix:sufStr];

        if (flag2) {

            NSLog(@"有这个后缀");

        }else{

            NSLog(@"没有这个后缀");

        }

        

        //8.将字符串里面的所有大写字符转换成小写

        NSString *str8 = @"HELLO";

        NSString *newStr8 = [str8 lowercaseString];

        NSLog(@"%@", newStr8);

        

        //9.将字符串里面的所有小写字符转换成大写

        NSString *str9 = @"HellO, wORld";

        NSString *newStr9 = [str9 uppercaseString];

        NSLog(@"%@", newStr9);

        

        //10.字符串每个单词的首字母大写

        NSString *str10 = @"hello world";

        

        NSString *newStr10 = [str10 capitalizedString];

        NSLog(@"str10=%@", newStr10);

        

        

        //11.截取字符串

        NSString *ocStr = @"hello, welcome to china";

        //1)从某个位置截取到字符串的最后(包含当前位置字符)

        NSString *sub1 = [ocStr substringFromIndex:7];

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

        

        //2)从字符串开始截取到某个位置(不包含当前位置字符)

        NSString *sub2 = [ocStr substringToIndex:5];

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

        

        //3)截取任意位置的字符串

        //NSRange r = {7, 6};

        NSRange r = NSMakeRange(7, 6);

        NSString *sub3 = [ocStr substringWithRange:r];

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

        

        //12.分割字符串

        NSString *oldStr = @"hello;world;aaa;ccc";

        //参数:按照参数对应的值分割原始的字符串

        //int a[2];

        //char *s[2];

        NSArray *array = [oldStr componentsSeparatedByString:@";"];

        NSLog(@"%@", array);

        

        

    }

    return 0;

}


0 0
原创粉丝点击