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

字符串的正则判断

Foundation框架之NSString及其Mutable类型的更多相关文章

  1. OC中Foundation框架之NSString、NSMutableString

    创建方式 )直接赋值 NSString *str =@"abc"; )创建对象 NSString *str2 = [[NSString alloc]init]; str2 =@&q ...

  2. 14.Object-C--浅谈Foundation框架字符串NSString 与NSMutableString

    OC的字符串时经常使用到的,今天我对于OC字符串做一个简单的总结,如果有错误之处,麻烦留言指正.感谢! NSString是一个不可变长度的字符串对象.表示它初始化以后,你不能改变该变量所分配的内存中的 ...

  3. [OC Foundation框架 - 4] NSString的导出

      void exportString() { NSString *str = @"Hello, 坑爹"; NSString *path = @"/Users/hello ...

  4. [OC Foundation框架 - 2] NSString 的创建

    A. 不可变字符串 void stringCreate() { //Don't need to release memory by this way NSString *str1 = @"S ...

  5. [OC Foundation框架 - 5] NSString的常用方法

             NSString *s1 = ";   1.比较 使用 == 号比较的是字符串地址 NSString *s4 = @"abcdefg"; NSStrin ...

  6. Foundation框架系列-NSString

    NSString OC字符串与C语言字符串转换 NSString *str = @"Hello world ! !"; // OC字符串 --> C语言字符串 char *c ...

  7. OC 知识:Foundation 框架及相关类详尽总结

    本文用来介绍Foundation框架的相关知识,以及Foundation框架所提供类的相关知识总结. 1. 框架介绍 框架是由很多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使开发程序变得更加 ...

  8. Foundation框架之NSArray、NSDictionary、NSSet及其Mutable类型

    Foundation框架之NSArray.NSDictionary.NSSet及其Mutable类型 目录 概述——对Foundation框架集合类的理解 NSArray NSDictionary N ...

  9. Foundation框架-NSString和NSMutableString

    可变与不可变的字符串 --1-- Foundation框架介绍 1.1 框架介绍 --2-- NSString 2.1 NSString介绍及使用 2.2 NSString创建方式  2.3 从文件中 ...

随机推荐

  1. 关于WordPress建站的原理二三事

    在写关于仿站文章详情页如何制作之前,我觉得有必要就一些原理性的问题,做一些说明.文章详情页的核心模块和首页有很多相似的地方,比如调用文章的标题.文章的内容.文章分类.作者等,实现起来都差不多,因此,了 ...

  2. air手势代码

    //下列2句谁放上面谁生效要么触控生效,要么手势生效 Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; Multitouch.inputM ...

  3. Jsp页面设计易忘点

    文本标签: <b>文本加粗 <i>斜体 <u>下划线 <sub>作为下标 <sup>作为上标 样式: italic;斜体 text-deco ...

  4. hdu 5532 Almost Sorted Array

    http://acm.hdu.edu.cn/showproblem.php?pid=5532  题目大意: 给你一个不规则的序列,问是否能够通过删除一个元素使其成为一个有序的序列(递增或递减(其中相邻 ...

  5. Linux查看系统信息命令总结

    系统 # uname -a               # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue   # 查看操作系统版本 # cat /proc/cpuinf ...

  6. POJ 2378 Tree Cutting (DFS)

    题目链接:http://poj.org/problem?id=2378 一棵树,去掉一个点剩下的每棵子树节点数不超过n/2.问有哪些这样的点,并按照顺序输出. dfs回溯即可. //#pragma c ...

  7. HeapAlloc、GlobalAlloc和new等内存分配有什么区别么?

    查找了一些 new , GlobalAlloc, HeapAlloc分配内存方式的区别. 转了一些资料 //============================================== ...

  8. 可执行jar包的maven配置

    待整理 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or ...

  9. cf754 A. Lesha and array splitting

    应该是做麻烦了,一开始还没A(幸好上一次比赛水惨了) #include<bits/stdc++.h> #define lowbit(x) x&(-x) #define LL lon ...

  10. This is a sandbox of markdown

    A First Level Header A Second Level Header Now is the time for all good men to come to the aid of th ...