zoukankan      html  css  js  c++  java
  • 字符串

     

    //C语言字符串

    //1.每个字符占用一个字节空间

    //2.字符串以''结束

    //3.字符串用""包含

    //4.打印字符串用%s

    //5.字符串中的每个字符以ASCII码形式存储

     

    //字符串对象

    //1.用@" "包含表示是一个字符串对象

    //2.字符串对象中的每个字符占用空间大小不确定

    //3.字符以UTF-8编码形式存储,UTF-8是一个多字节编码,属于Unicode编码

    //4.打印字符串对象用 %@

     

     

    //OC中的字符串是一个字符串对象

    //NSString  NSMutableString

    //NSString 创建不可变字符串对象

     

     

     

     

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

        @autoreleasepool {

            NSString *str= @"hello world中国";//常量字符串对象存储在常量区

            NSLog(@"%@", str);

            NSLog(@"%p", str);

            //用给定格式构造一个字符串对象

            NSString *str1 = [[NSString alloc] initWithFormat:@"%s%d%f","hellowrld",1000,3.14];

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

            //用另外一个字符串对象构造一个新的字符串对象

            NSString *str2 = [[NSString alloc] initWithString:str1];

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

            //用C语言的字符串构造一个OC字符串对象

            NSString *str3 = [[NSString alloc] initWithUTF8String:"qianfeng"];

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

            

            NSString *str4 = [[NSString alloc] initWithCString:"1000phone" encoding:NSUTF8StringEncoding];

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

            

            //利用类方法创建OC字符串对象

            //构造一个空的字符串对象 @""

            NSString *str5 = [NSString string];

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

            //用给定的格式创建一个新的字符串对象

            NSString *str6 = [NSString stringWithFormat:@"%d%s%@",200,"helloworld",@"qianfeng"];

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

            //用给定的字符串对象创建一个新的字符串对象

            NSString *str7 = [NSString stringWithString:str6];

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

            //用C语言字符串创建OC字符串对象

            NSString *str8 = [NSString stringWithUTF8String:"中国教育"];

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

            //用C语言的字符串创建OC字符串对象

            NSString *str9 = [NSString stringWithCString:"千锋教育" encoding:NSUTF8StringEncoding];

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

            

        }

        return 0;

    }

     

    #import <Foundation/Foundation.h>

     

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

        @autoreleasepool {

            NSString *str = [NSString stringWithCString:"helloworld中国教育" encoding:NSUTF8StringEncoding];

            //获取字符串对象长度

            NSUInteger len = [str length];

            NSLog(@"len = %lu %@", len,str);

            //获取下标位置的unichar字符

            unichar ch = [str characterAtIndex:11];

            NSLog(@"ch = %C", ch);//OC中的字符打印用%C

            //提取子串

            //从下标位置提取子串到字符串结束

            NSString *str1 = [str substringFromIndex:5];

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

            //从字符串开始提取子串到下标位置(不包含下标位置的字符)

            NSString *str2 = [str substringToIndex:5];

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

            //提取指定范围内的子串

            NSRange range = {5,6};

            NSString *str3 = [str substringWithRange:range];

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

            NSString *str4 = [str substringWithRange:NSMakeRange(5, 5)];//NSMakeRange 创建一个range

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

            

            //字符串比较

            NSString *str5 = @"helhelloloworld";

            NSString *str6 = @"hell";

            NSComparisonResult ret = [str5 compare:str6];

            if (ret == NSOrderedAscending) {

                NSLog(@"str5 < str6");

            }

            else if (ret == NSOrderedSame)

            {

                NSLog(@"str5 == str6");

            }

            else if (ret == NSOrderedDescending)

            {

                NSLog(@"str5 > str6");

            }

            //以大小写不敏感方式比较字符串对象

            NSComparisonResult ret2 = [str5 compare:str6 options:NSCaseInsensitiveSearch];

            NSLog(@"ret2 = %ld", ret2);

     

            NSComparisonResult ret3 = [str5 caseInsensitiveCompare:str6];

            NSLog(@"ret3 = %ld", ret3);

            

            //range: 值的调用对象的范围,range.length表示最多比较字符的个数

            NSComparisonResult ret4 = [str5 compare:@"hello" options:NSLiteralSearch range:NSMakeRange(3, 5)];

            NSLog(@"ret10 = %ld", ret4);

     

            //判断两个字符串对象是否相等, 相等返回1,否则返回0

            BOOL ret5 = [str5 isEqualToString:str6];

            NSLog(@"ret4 = %d", ret5);

            //判断前缀

    //        - (BOOL)hasPrefix:(NSString *)aString;

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

            BOOL ret6 = [str7 hasPrefix:@"www."];

            NSLog(@"ret5 = %d", ret6);

            

            //判断后缀

    //        - (BOOL)hasSuffix:(NSString *)aString;

            NSString *str8 = @"baidu.com";

            BOOL ret7 = [str8 hasSuffix:@"com"];

            NSLog(@"ret6 = %d", ret7);

            

            //判断是否包含子串

            //- (BOOL)containsString:(NSString *)aString;

            BOOL ret8 = [@"helloworld" containsString:@"hello"];

            NSLog(@"ret8 = %d", ret8);

            

            //查找子串

            //查找不到子串返回long类型的最大值 (NSNotFound)

            NSString *str9 = @"qianfengjiaoyu";

            NSRange range1 = [str9 rangeOfString:@"hello"];

            if(range1.location == NSNotFound)

            {

                NSLog(@"%lu 没有找到指定的字符串", NSNotFound);

            }

            else

            {

                NSLog(@"location  = %ld , length = %ld", range1.location,range1.length);

            }

            

            //倒序查找子串

            NSRange range2 = [@"qianhelloworldhellofeng" rangeOfString:@"hello" options:NSBackwardsSearch];

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

            

            //字符串追加

            NSString *str10 = [NSString stringWithFormat:@"%s","qianfeng"];

            

            NSLog(@"%p", str10);

            str10 =[str10 stringByAppendingString:@"helloworld"];//创建一个新的字符串对象

            NSLog(@"%p", str10);

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

            //格式化追加字符串

            NSString *str11 = [str10 stringByAppendingFormat:@"%f%s%d",3.14,"qianfeng",1000];

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

            

            //把字符串转换成数字

            NSLog(@"%ld",[@"123" integerValue]);

            NSLog(@"%.2f",[@"-3.1456" floatValue]);

            //返回公共前缀子串

            NSString *str12 = [@"www.baidu.com" commonPrefixWithString:@"www.hao123.com" options:NSLiteralSearch];

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

            //小写转换大写

            NSString *str13 = [@"hello world qian" uppercaseString];

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

            //大写转换小写

            NSString *str14 = [@"HEllo WORld" lowercaseString];

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

            //把每个单词的首字母转换成大写

            NSString *str15 = [@"hello qian feng world" capitalizedString];

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

            //把OC字符串转换成C语言字符串

            const char *str16 = [@"www.baidu.com" cStringUsingEncoding:NSUTF8StringEncoding];

            NSLog(@"%s",str16);

            //字符串替换

            NSString *str17 = [NSString stringWithUTF8String:"worldqianfengworld1000feng"];

            //用新的字符换替换所有指定的字符串

            str17 = [str17 stringByReplacingOccurrencesOfString:@"world" withString:@"www"];

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

            //用新的字符串替换指定范围内的字符串

            NSString *str18 = [str17 stringByReplacingCharactersInRange:NSMakeRange(7, 7) withString:@"sina.cn"];

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

            

            //利用网址的内容创建字符串对象

            //- (instancetype)initWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error;

            //+ (instancetype)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error;

            NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];

            NSString *str19 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

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

     

            //利用文件内容创建字符串对象

            //- (instancetype)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;

            //+ (instancetype)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;

            NSString *str20 = [NSString stringWithContentsOfFile:@"/Users/zhangxueming/Desktop/file.txt" encoding:NSUTF8StringEncoding error:nil];

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

            

        }

        return 0;

    }

     

    //NSMutableString

    //可变字符串

    //可变字符串对象可以被修改

    //继承与不可变字符串

    //不可变字符串的方法, 可变字符串都可以使用

     

     

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

        @autoreleasepool {

          //在指定的位置增加字符串

            NSMutableString *mulStr = [NSMutableString stringWithUTF8String:"helloworld"];

            [mulStr insertString:@"qianfeng" atIndex:5];

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

            

            //删除指定范围内的字符

            [mulStr deleteCharactersInRange:NSMakeRange(9, 4)];

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

            //追加字符串

            [mulStr appendString:@"baidu.com"];

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

            //格式化追加字符串

            NSMutableString *mulStr1 = [NSMutableString stringWithCString:"中国人" encoding:NSUTF8StringEncoding];

            [mulStr1 appendFormat:@"%@",@"在大连"];

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

            //修改字符串对象

            [mulStr1 setString:@"helloworld"];

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

            //构造可变字符串对象并设定容量大小,但是可变容量可以被修改

            //+ (NSMutableString *)stringWithCapacity:(NSUInteger)capacity;

            NSMutableString *mulStr2 = [[NSMutableString alloc]initWithCapacity:20];

            [mulStr2 setString:@"千锋"];

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

            //字符串替换

            NSMutableString *mulStr3 = [NSMutableString stringWithCapacity:10];

            [mulStr3 appendString:@"helloOnehelloTwohelloThree"];

            //NSLog(@"%@", mulStr3);

            //替换指定范围内的指定所有字符串

    //        [mulStr3  replaceOccurrencesOfString:@"hello" withString:@"welcome" options:NSLiteralSearch range:NSMakeRange(0, 16)];

            [mulStr3 replaceOccurrencesOfString:@"hello" withString:@"welcome" options:NSLiteralSearch range:NSMakeRange(0, [mulStr3 length] )];

            

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

            //替换(删除)指定范围内的所有字符

            [mulStr3 replaceCharactersInRange:NSMakeRange(7, 10) withString:@""];

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

            

        }

        return 0;

    }

     

    让明天,不后悔今天的所作所为
  • 相关阅读:
    Linux的优缺点,Linux与windows的区别
    一文带你读懂 Mysql 和 InnoDB存储引擎
    由浅入深一个Demo带你认识Restful风格的架构
    同步锁Synchronized与Lock的区别?
    认识多线程中start和run方法的区别?
    Java多线程与并发相关问题
    初识WebSocket
    Tomcat与Nginx服务器的配合使用及各自的区别
    Java内存模型相关原则详解
    你对区块链的理解还停留在炒币上吗
  • 原文地址:https://www.cnblogs.com/-yun/p/4309692.html
Copyright © 2011-2022 走看看