OC中字符串的简单操作

OC中字符串的简单操作

 ///字符串拼接
    NSString *str1 = @"mingtian*";
    NSString *str2 = @"nihao*";
    NSString *str3 = [NSString stringWithFormat:@"%@%@",str1,str2];
    
    ///在拼接完str3的基础上继续拼接(后面只能拼接字符串)
    str3 = [str3 stringByAppendingString:@"(zhangdayihou)"];
    
    ///在拼接完str3的基础上继续拼接(后面可拼接任意形式的数据)
    str3 = [str3 stringByAppendingFormat:@"%@ %d",@"lalala*",11];
    NSLog(@"str3 %@",str3);

    ///字符串分割(1)
    NSArray *components = [str3 componentsSeparatedByString:@"*"];
    NSLog(@"components: %@",components);
    
     ///字符串分割(2) NSCharacterSet集合 可以分割多个字符
    components = [str3 componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"*()"]];
    NSLog(@"components1: %@",components);

    
    ///取字符串 从什么地方开始取
    NSString *subString = [str3 substringFromIndex:2];
    NSLog(@"subString2 %@",subString);
    
    
    ///取到什么位置
    subString = [str3 substringToIndex:5];
    NSLog(@"subString3 %@",subString);

    
    ///取一个范围之间的数据 NSMakeRang第一个参数是从第几个字符开始截取  第二个参数是截取字符串的长度
    subString = [str3 substringWithRange:NSMakeRange(0, 5)];
    NSLog(@"subString4 %@",subString);

字符串比较

    NSString *str1 = @"hello";
    NSString *str2 = @"hello";
    
    ///每次通过stringWithFormat 创建的字符串 都是新创建一个内存地址
    str2 = [NSString stringWithFormat:@"hello"];
    
    ///比较指针的指向地址是否相同
    if (str1 == str2)
    {
        //相等(是指内存地址相等)
    }
    else
    {
        //不相等 (是指内存地址不相等)
    }
    //比较字符串是否相同
    if ([str1 isEqualToString:str2])
    {
        //相等(是指字符串相等)
    }
    else
    {
        //不相等(是指字符串不相等)
    }
    
    ///重新赋值
    str1 = @"abd";
    str2 = @"acd";
    
    NSComparisonResult result = [str1 compare:str2];
        switch (result) {
        case NSOrderedAscending://升序
                NSLog(@"str1<str2");
            break;
        case NSOrderedSame://相同
                NSLog(@"str1=str2");
            break;
        case NSOrderedDescending://降序
            NSLog(@"str1>str2");
            break;
        default:
            break;
    }
    

 字符串其他属性

 NSString *myStr = @"patience is bitter";
  ///字符串的长度(包括空格)
    NSLog(@"myStrLenth = %zd",myStr.length);
    
  ///将字符串所有字母转化成大写格式
    NSLog(@"upper:%@",myStr.uppercaseString);
    /// 所有字符串转成大写 uppercaseString
    /// 所有字符串转成小写 lowercaseString
    /// 驼峰原则 capitalizedString(每个单词的首字母大写)
    
    
    ///判断字符串是否有这个(patience)前缀
    BOOL result = [myStr hasPrefix:@"patience"];
    if (result)
    {
        NSLog(@"YES");
    }
    else
    {
        NSLog(@"NO");
    }
    
    ///获取字符串某一个范围
    NSRange range = [myStr rangeOfString:@"bitter"];
    NSLog(@"%@",NSStringFromRange(range));


可变字符串的操作

 //可变字符串可以用init初始化 因为可变字符串指的是内存空间是可以被更改的
    //对象方法
    NSMutableString *string = [[NSMutableString alloc]init];
    
    ///类方法创建
     string = [NSMutableString string];
    
    ///可变字符串赋值
    [string setString:@"我是可变字符串"];
    NSLog(@"%p:%@",string,string);
    
    ///再次赋值会把之前的内容覆盖(内存地址不变)
//    [string setString:@"123"];
    
    
    ///可变字符串拼接
    [string appendString:@"你好"];

    ///指定插入字符串
    [string insertString:@"明天" atIndex:7];
//    NSLog(@"%p:%@",string,string);
    
    ///删除
    [string deleteCharactersInRange:([string rangeOfString:@"你好"])];
    ///删除指定文字 ([string rangeOfString:@"你好"])
    ///删除字符串的范围 NSMakeRange(0, 4)
     NSLog(@"%p:%@",string,string);
    
    ///修改字符串(范围替换)
    [string replaceCharactersInRange:NSMakeRange(0, 1) withString:@"123"];
    NSLog(@"%p:%@",string,string);
    
    ///修改字符串(替换掉一个字符串)
    NSMutableString *string1 = [NSMutableString stringWithFormat:@"我是可变字符串"];
    [string1 replaceCharactersInRange:([string1 rangeOfString:@"我是可变字符串"]) withString:@"123"];
    NSLog(@"%p:%@",string1,string1);

//还请大家多多指教 多多提意见


阅读更多
换一批

没有更多推荐了,返回首页