zoukankan      html  css  js  c++  java
  • iOS学习之NSString

    一、不可变字符

      NSString是不可变字符串,它产生的其他字符串方法都是生成一个新的字符串,而不会改变原来字符串。

    1.创建方式

    //1)字面量,它是常量字符串,存储常量区
    NSString *str=@"hello";
    //2)通过快捷构造法,存储堆区
    NSString *str = [NSString stringWithFormat:@"hello %@", @"world"];
    //3)初始化方法
    NSString *str = [[NSString alloc] initWithFormat:@"%@",@"hello"];
    

    2.字符串的获取

    1)获取字符串长度

    NSString *str=@"hello";
    long length = str.length;
    

    2)获取子串

    NSString *str=@"hello";
    
    /*从索引字符串开始截取,直到字符串末尾,包含索引上的字符*/
    NSString *strSub = [str substringFormIndex:2];
    
    /*从字符串开头开始截取,直到索引位置,不包含索引上的字符*/
    NSString *strSubT = [str substringToIndex:2];
    
    /*从哪个位置开始,截取多长*/
    NSRange range = {2,4};
    NSString *strSubR = [str substringWithRange:range];
    
    /*获取某个子串所在的区域*/
    NSRange rangeS = [str rangeOfString"@"el"];
    

    3)字符串范围获取

    /*计算文本大小*/
    CGSize maxSize = CGSizeMake(MAXFLOAT, MAXFLOAT);/*width与height都不限制*/
    CGSize nameSize = [self.microBlogModel.name boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15]} context:nil].size;
    

    3.字符串操作

    /*单词首字母转大写*/
    [str capitalizedString];
    
    /*字符替换*/
    NSString *newStr = [str stringByReplacingOccurencesOfString:@"ll" withString:@"al"];
    
    /*使用某个字符串替换掉原来字符串中某个区间的字符串*/
    NSRange range = [str rangeOfString:@"ll"];
    NSString *newStr = [str stringByReplacingCharactersInRange:range withSring:@"hi"];
    
    /*删除原字符串中的所有指定字符串*/
    NSString *newStr = [str stringByReplacingOccurencesOfString:@"ll" withString:@""];
    
    /*去掉两头空格*/
    NSString *newStr = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    

    4.字符串与文件

    /*在原来路径上拼接一个路径*/
    NSString *path = @"/Users/dengwei";
    path = [path stringByAppendingPathComponent:@"Desktop"];
    
    /*获取扩展名*/
    NSString *path = @"/Users/dengwei/Desktop/apple.txt";
    path = [path stringByDeletingPathExtension];
    path = [path stringByAppendingPathExtension:@"png"];
    
    /*把字符串写入文件*/
    NSString *str = @"today is cold!";
    NSString *path = @"/Users/dengwei/Desktop/apple.txt";
    NSError *error;
    BOOL isSuccess = [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
    
    /*读取文件*/
    NSString *string = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
    

    5.字符串与URL

    /*
    URL:Uniform Resource Locator 统一资源定位符
    URL:格式  协议头://主机名称/资源路径
    http://www.baidu.com/some/images/pic.png
    404:没有找到资源
    */
    NSString *str = @"today is cold!";
    /*url路径中不支持中文,若是有中文则需将中文转码*/
    NSURL *url =  [NSURL URLWithString:@"file:///Users/dengwei/Desktop/apple.txt"];
    
    /*将中文转码*/
    NSString *url_cn =  @"file:///Users/dengwei/Desktop/中文.txt";
    /*编码,把UTF8编码的字符串编码成URL中可用的字符串*/
    url_cn = [url_cn stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    /*解码,把URL中可用的字符串编码的字符串解码成UTF8编码的字符串*/
    url_cn = [url_cn stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    
    url_cn = [NSURL URLWithString:url_cn];
    NSError *error;
    /*写入*/
    BOOL isSuccess = [str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:&error];
    /*读取*/
    NSString *string = [str stringWithContentsOfURL:url atomically:YES encoding:NSUTF8StringEncoding error:&error];
    

    二、可变字符

      NSMutableString,可变字符,是NSString的子类。

      一个字符串需要经常修改其中的内容,则使用NSMutableString。 

    可变字符串初始化,其他操作与NSString一样,因为其是NSString的子类。

    NSMutableString *strM = [NSMutableString string];
    /*Capacity表示容量,可以容纳多少字符,如果超过这个存储空间,就会扩展它*/
    NSMutableString *strM = [NSMutableString stringWithCapacity:10];
    

      

     

     

      

  • 相关阅读:
    107. Binary Tree Level Order Traversal II
    103. Binary Tree Zigzag Level Order Traversal
    102. Binary Tree Level Order Traversal
    690. Employee Importance
    1723. Find Minimum Time to Finish All Jobs
    LeetCode 329 矩阵中最长增长路径
    7.2 物理内存管理
    LeetCode 面试题 特定深度节点链表
    LeetCode 100 相同的树
    npm安装包命令详解,dependencies与devDependencies实际区别
  • 原文地址:https://www.cnblogs.com/chars/p/5053862.html
Copyright © 2011-2022 走看看