zoukankan      html  css  js  c++  java
  • Objective-C( Foundation框架 一 字符串)

    Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度。

    创建NSString字符串:
    NSString 与 char* 最大的区别就是 NSString是一个objective对象,而char* 是一个字节数组。@+ " 字符串 " 这个符号为objective-c NSString 字符串常量的标准用法,char* 创建的时候 无需添加@
        // 创建字符串
        NSString *str = @"jack";
        NSString *s1 = [[NSString alloc] initWithFormat:@"age = %d" ,10];
       
       // c字符串转oc字符串
        NSString *s2 = [[NSString alloc] initWithUTF8String:"jack"];
    
        // oc 转 c
        const char *c1 = [s2 UTF8String];
        NSLog(@"%s", c1);

    字符串的遍历

        
        NSString *str = @"ni hao peng you";
        for (int i = 0; i < str.length; i++) {
            unichar c = [str characterAtIndex:i];
            NSLog(@"%c",c);
        }

    NSURL

    // NSUTF8StringEncoding 用到中文可以用这个
       // 传进来文件路径可以查看文件
        NSString *s3 = [[NSString alloc] initWithContentsOfFile:"/Users/apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil];
       /*URL :资源路径
        协议头://路径
        file://
        ftp://
        http://www.baidu.com
       */
      // 在 iOS 程序访问 HTTP 资源时需要对 URL 进行 Encode
         // NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/apple/Desktop/1.txt"];
    
          NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/1.txt"];
    
        
        NSString *s4 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"s4=
    %@", s4);

    NSString :不可变字符串

    NSMutableString :可变字符串

    字符串中拼接

    
        // 创建字符串
        NSMutableString *s = [NSMutableString stringWithFormat:@"my age is 23"];
        // 拼接内容到s的后面
        [s appendString:@" 3 21"];
    

    字符串中删除元素

    stringWithString 方法:用于创建字符串初始化赋值
    rangeOfString方法:传入字符串返回一个在该字符串中的范围 也可以写 NSMakeRange(0, 3) 意思是范围在字符串0位到第3位
    deleteCharactersInRange:删除字符串 参数为Range 就是删除的范围。
     
    //创建字符串  
        NSMutableString *str = [NSMutableString stringWithString:@"haha 你好!!"];  
        //删除字符串中含"haha"的字符  
        [str deleteCharactersInRange: [str rangeOfString: @"haha"]];      
        NSLog(@"str = %@",str); 
    

     字符串查找

    查找一个字符串在另一个字符串首次出现的位置

        NSString *s = @"abciOSdefg";
        NSString *s1 = @"iOS";
        NSRange * range = [s rangeOfString:s1];
        // 判断是否找到字符串
        if(range.location!NSNotFound){
        NSLog(@"%lu,%lu",range,location, range.length);
        }else{
              NSLog(@"没有找到字符串位置");
        }
        

     判断字符串是否相同

        // 字符串是否相同
        NSString *s1 = @"abc";
        
        NSString *s2 = [NSString stringWithFormat:@"abc"];
        
        if ([s1 isEqualToString:s2]) {
            NSLog(@"相同");
        }else{
            NSLog(@"不相同");
        }
        

    字符串截取

       
        NSString *str = @"012345678";
        // 从元素下标为3的位置开始往后截取,(包含下标为3的位置的元素)
        NSString *str1 = [str substringFromIndex:3];
        NSLog(@"str1 = %@",str1);
        // 从开始位置截取到3位(不包含下标为3的位置的元素)
        NSString *str2 = [str substringToIndex:3];
        NSLog(@"str2 = %@",str2);
        // 截取某段位置的字符进行输出
        NSRange range ={2,3};
        NSString *str3 = [str substringWithRange:range];
        NSLog(@"str3 = %@",str3);
        // 截取某段位置的字符
        //                         012345  789
        NSString *str = @"aaaaa<你好>aaaaaa";
        NSUInteger loc = [str rangeOfString:@"<"].location + 1; // 传的位置
        NSUInteger len = [str rangeOfString:@">"].location - loc; // 要截取的字符长度
        
        NSRange r1 = {loc, len};
        
        NSString *subStr = [str substringWithRange:r1];
        NSLog(@"subStr = %@", subStr);

    字符串的替换

       // 字符串的替换
        NSString *str = @"adadwffdtoiajdfa";
        
        // str stringByReplacingOccurrencesOfString:@"源字符串" withString:@"要替换成的新内容"
        // 把a替换成/
        NSString * newStr = [str stringByReplacingOccurrencesOfString:@"a" withString:@"/"];
        NSLog(@"newStr = %@", str);
        
        // 把字符串中的空格去掉
        str = @" adad wff dt oiaj df a";
        newStr = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
        NSLog(@"newStr = %@", newStr);
        
        // 把字符串中空格去掉,把星号替换成/
        str = @"http ** www* baidu* com*";
        
        newStr = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
        NSString *newStr1 = [newStr stringByReplacingOccurrencesOfString:@"*" withString:@"/"];
        NSLog(@"newStr1 = %@",newStr1);

     

  • 相关阅读:
    Bugku cookie欺骗
    Bugku 速度要快
    bugku 秋名山老司机
    关于进程三态(运行态、就绪态、阻塞态)的一些易混知识点
    (转)解决ubuntu下拼音输入法出错的问题
    Codeforces Round #402 (Div. 2)
    (转)codeblocks 使用研究
    (原+转)怎么解决ubuntu挂起后无法唤醒的问题(还是没解决!!求助!!)
    关于codeblocks插件(持续更新)
    自定义gvim配色方案qiucz.vim的源码
  • 原文地址:https://www.cnblogs.com/1023843587qq/p/4771986.html
Copyright © 2011-2022 走看看