zoukankan      html  css  js  c++  java
  • Foundation框架之NSString及其Mutable类型

    Foundation框架之NSString及其Mutable类型

     

    目录

    • 概述
    • 对字符串的实用操作

    拼接

    拆分

    字符串比较

    是否包含某字符串

    字数统计

    大小写转换

    • 具体的方法参见API
    • 待研究

     

    概述

    对NSString的理解

     

    对字符串的实用操作

    拼接

    NSString *combinedStr = [NSString stringWithFormat:@"%@%@",str0,str1];

    注:本人比较倾向于使用这种方式做字符串的拼接,可扩展性强,当有新需求时只需要更改format里面的即可,增删比较方便

    拆分

    NSArray *strArrays = [str2 componentsSeparatedByString:@"str"];

    NSArray *strArrays2 = [str2 componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"str"]];

    字符串比较

    不忽略大小写

    [str isEqualToString:@"str"];

    忽略大小写

    [str caseInsensitiveCompare:@"str"] == NSOrderedSame

    是否包含某字符串

    不忽略大小写

    NSRange range = [str rangeOfString:@"str"];

    if(range.length>0){ //包含 }

    忽略大小写

    NSRange range = [str rangeOfString:@"str" options:NSCaseInsensitiveSearch];

    if(range.length>0){ //包含 }

    字数统计

    字符总数

    [str length];

    某一字符串的个数(includeStr为查找的字符串)

    实现方式一

    NSArray *array = [str componentsSeparatedByString:includeStr];

    NSUInteger sum = array.count - 1;

    实现方式二

    实现思路

    每找到一个字符,下一次的寻找范围为先前找到的字符串下一位置开始到字符串末尾,循环寻找,直至没有找到或者到字符串末尾

    + (NSUInteger)string:(NSString *)str includeStr:(NSString *)includeStr{

      NSUInteger sum = 0;

      NSUInteger index = 0;

      NSRange range = [str rangeOfString:includeStr options:NSLiteralSearch range:NSMakeRange(0,[str length])];

      while(range.length > 0){

        sum += 1;

        index = range.location + range.length;

        //到字符末尾

        if(index >= [str length]){

          break;

        }

        range = [str rangeOfString:includeStr options:NSLiteralSearch range:NSMakeRange(index,[str length] - index)];  //注1

      }

      return sum;

    }

    注1

    返回的NSRange的location为从字符串的头开始算起,而不是从index的位置开始算起

    忽略大小写则只需要把两个地方的options参数更改成:NSCaseInsensitiveSearch

    大小写转换

    [str lowercaseString];

    [str uppercaseString];

     

    具体的方法参见API

    待研究

    根据字符串首字母进行排序

    NSLocale

    字符串的正则判断

  • 相关阅读:
    C语言printf()输出格式大全
    C语言ASCII码、运算符优先级、转义字符
    通过Navicat for MySQL远程连接的时候报错mysql 1130 的解决方法
    mysql kill process解决死锁
    常用的二种修改mysql最大连接数的方法
    show processlist结果筛选
    数据库连接driverClass和jdbcUrl大全
    在实例中引用模式文档
    在Eclipse中导入dtd和xsd文件,使XML自动提示
    Linux下Java安装与配置
  • 原文地址:https://www.cnblogs.com/IOS-Developer/p/4211108.html
Copyright © 2011-2022 走看看