zoukankan      html  css  js  c++  java
  • ios 最全的常用字符串操作

    1、将NSData / NSString转化

    1
    2
    3
    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; // 将字符串转data
     
    NSString* str = [[NSString alloc] initWithData:data]; // 将data转为字符串

    2、字符串比较

    (1)、OC语言,比较两个字符串是否相等

    1
    2
    3
    4
    5
    // isEqualToString方法     
    NSString *astring01 = @"This is a String!"
    NSString *astring02 = @"This is a String!"
    BOOL result = [astring01 isEqualToString:astring02]; 
    NSLog(@"result:%d",result);

    (2)、C语言 比较两个字符串是否相等(一般不用)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    char string1[] = "string!";
      
    char string2[] = "string!";
      
    if(strcmp(string1, string2) == 0) {
      
        NSLog(@"1");
      
    }

    (3)、compare 比较两个字符串是否相等

    1
    2
    3
    4
    5
    6
    //compare方法(comparer返回的三种值)     
    NSString *astring01 = @"This is a String!"
    NSString *astring02 = @"This is a String!";     
    BOOL result = [astring01 compare:astring02] = = NSOrderedSame;     
    NSLog(@"result:%d",result);     
    //NSOrderedSame判断两者内容是否相同

    (4)、忽略大小写比较两个字符串

    1
    2
    3
    4
    5
    6
    //不考虑大小写比较字符串1 
    NSString *astring01 = @"this is a String!"
    NSString *astring02 = @"This is a String!"
    BOOL result = [astring01 caseInsensitiveCompare:astring02] = = NSOrderedSame;     
    NSLog(@"result:%d",result);      
    //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,astring02小于astring01为真)

    (5)、判断一个字符串是否包含另一个字符串

    1
    2
    3
    4
    5
    6
    // 判断字符串中是否包含“a”
    NSString *str = @"qrewfgfshsgfda";
    if ([str rangeOfString:@"a"].location == NSNotFound) {
         
        NSLog(@"str 中 不包含 a");
    }

    (6)、判断两对象值的大小(按字母顺序升序进行比较,如:a大于b为真)

    1
    2
    3
    4
    5
    6
    NSString *str = @"a";
    NSString *str1 = @"b";
    if ([str compare:str1] == NSOrderedAscending) {
         
        NSLog(@"%@大于%@",str,str1);
    }

    (7)、判断两对象值的大小(按字母顺序倒序进行比较,如:c大于b为真)

    1
    2
    3
    4
    5
    6
    NSString *str = @"c";
    NSString *str1 = @"b";
    if ([str compare:str1] == NSOrderedDescending) {
         
        NSLog(@"%@大于%@",str,str1);
    }

    3、字符串转大写/小写/首字母大写

    1
    2
    3
    4
    5
    6
    NSString *str = @"this is the str";
    [str uppercaseString];  // 将str转大写
     
    [str lowercaseString];  // 将str转小写
     
    [str capitalizedString];// 将str首字母大写  

    4、字符串截取

    (1)、从字符串的开头一直截取到指定的位置,但不包括该位置的字符

    1
    2
    3
    4
    NSString *str = @"this is a str";
     
    // 从字符串的开头一直截取到指定的位置,但不包括该位置的字符
    NSString *str2 = [str substringToIndex:3]; // 截取后str2的值为:thi

    (2)、从指定位置开始(包括指定位置的字符),截取到字符串末尾

    1
    2
    3
    4
    NSString *str = @"this is a str";
     
    // 以指定位置开始(包括指定位置的字符),截取到字符窜末尾
    NSString *str2 = [str substringFromIndex:3]; // 截取后str2的值为:s is a str

    (3)、从指定位置开始(包括指定位置的字符),截取指定长度的字符串

    1
    2
    3
    4
    5
    NSString *str = @"this is a str";
     
    // 从指定位置开始(包括指定位置的字符),截取指定长度的字符串
    // 第一个参数表示起始位置,第二个参数表示截取的长度
    NSString *str2 = [str substringWithRange:NSMakeRange(1, 3)]; // 截取后str2的值为:his 

    5、字符串拼接

    (1)、方法一:通过 stringWithFormat 拼接

    1
    2
    3
    4
    NSString *str = @"this is a str";
     
    // 在str后拼接 append,生成str2
    NSString *str2 = [NSString stringWithFormat:@"%@ append",str];

    (2)、方法二:通过 stringByAppendingString 拼接

    1
    2
    3
    4
    NSString *str = @"this is a str";
     
    // 在str后拼接 append,生成str2
    NSString *str2 = [str stringByAppendingString:@"apend"];

    (3)、方法三:通过 stringByAppendingFormat拼接

    1
    2
    3
    NSString *str = @"this is a str";
    // 在str后拼接一个Format好的字符串
    NSString *str2 = [str stringByAppendingFormat:@"apend%@",str]; 

    (4)、在字符串指定位置插入新字符串

    1
    2
    3
    4
    5
    // 在指定位置插入字符串,
    NSMutableString *str = [NSMutableString stringWithString:@"This is a str"];
     
    // 在字符串前面插入Hello,使用此方法必须保证 str 是可变长度的
    [str insertString:@"Hello" atIndex:0 ];

    6、判断字符串是否以另一个字符串开头/结尾

    1
    2
    3
    4
    NSString *str = @"This is a str";
     
    [str hasPrefix:@"This"]; // 判断字符串是否以This开头
    [str hasSuffix:@".txt"]; // 判断字符串是否以.txt结尾 

    7、字符串扩展路径

    1
    2
    3
    4
    5
    6
    7
    NSString *Path = @"~/Documents/NSData.txt"; // 此字符串必须为~开头
     
    // 在Path前面扩展沙盒的路径
    NSString *absolutePath = [Path stringByExpandingTildeInPath];
     
    // 去除扩展路径
    [absolutePath stringByAbbreviatingWithTildeInPath];

    8、获取一个文件的扩展名

    1
    2
    3
    // path 为一个文件的完整路径
    NSString *Path = @"........./NSData.txt";
    NSLog(@"这个文件的扩展名是:%@",[Path pathExtension]);

    9、按照固定长度生成空字符串

    1
    2
    // 按照固定长度生成空字符串
    NSString *str = [NSMutableString stringWithCapacity:40];

    10、用指定字符串替换字符串中某指定位置、长度的字符串

    1
    2
    3
    4
    5
    6
    7
    // 用指定字符串替换字符串中的字符串,针对于可变字符串有效
    NSMutableString *str = [NSMutableString stringWithString:@"This is a str"];
     
    // 用That替换字符串中的This
    [str replaceCharactersInRange:NSMakeRange(0, 4) withString:@"That"];
     
    NSLog(@"替换后的str:%@",str);

    11、 使用JsonKit 将字符串转成数据字典

    1
    2
    3
    NSString *response = [request responseString];                     // 这是一个Json格式的字符串
    NSData *data = [response dataUsingEncoding:NSUTF8StringEncoding];  // 将字符串转data
    NSDictionary *dic = [data objectFromJSONData];                     // 字符串转字典

    12、IOS url 编码,http请求遇到汉字的时候,需要转化成UTF-8

    1
    2
    3
    // ios中http请求遇到汉字的时候,需要转化成UTF-8,用到的方法是:
      
    NSString * encodingString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    13、IOS url 解码,将%3A%2F%2F 格式转为UTF-8

    1
    2
    3
    // 请求后,返回的数据,如何显示的是这样的格式:%3A%2F%2F,此时需要我们进行UTF-8解码,用到的方法是:
     
    NSString *str = [model.album_name stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

     

    非学无以广才,非志无以成学,小编不才,还请看官多多见谅!
    此博客已暂停维护,博主已搬家至 https://dukec.cn/
  • 相关阅读:
    使用 rabbitmq 的场景?
    什么是 Spring Cloud Bus?我们需要它吗?
    使用 Spring Cloud 有什么优势?
    我们如何监视所有 Spring Boot 微服务?
    什么是 YAML?
    如何集成 Spring Boot 和 ActiveMQ?
    什么是 JavaConfig?
    数据字典属于哪一个用户的?
    怎么对命令进行取别名?
    使用什么命令查看网络是否连通?
  • 原文地址:https://www.cnblogs.com/duke-cui/p/11099150.html
Copyright © 2011-2022 走看看