1.字符串的创建

(1)创建常量字符串

NSString *str = @"This is a String";  //str是变量名

(2)创建空的字符串,给字符串赋值

NSString *str = [NSString alloc] init];

str = @"科比 布莱恩特"; //直接赋值

(3)花样赋值

<1>使用初始化方法:initWithFormat:根据一定的字符串格式来初始化字符串对象,将格式串中的内容写入字符串对象空间内

NSString *str = [[NSStringalloc] initWithFormat:@"iphon%@",@"e6"];

<2>使用便利构造器stringWithFormat:来快速创建对象,内部进行alloc以及初始化操作,内部将initWithFormat初始化方法来进行初始化

NSString *str =[ NSString stringWithFormat:@"逗比%@",@"儿"];

<3>用标准C语言创建字符串

char *name = "say hello";

NSString *sayHello = [[NSString alloc] initWithUTF8String:name];

2.求取字符串的长度(关键词:length)

NSString *str =@"明明知道相思苦";

NSUInteger length = str.length;    //或者 [str length]也可以     length 在OC中是属性存在,可以直接调用

NSLog(@"%ld",length);

3.字符串的拼接(关键词:append)

NSString *str1 = @"波多野结衣";

NSString *str2 = @"是AV女忧";

方法1:

NSString *str3 = [str1 stringByAppendingString:str2];            //由于NSString是不可变字符串,因此只能返回新的字符串,元字符串不变

方法2

NSString *str4 = [str1 stringByAppendingFormat:@"%@是小日本%@",@"18,"@"的明星"];

4,字符串的截取(关键词:sub)

NSString *str = @"say goodbye";

<1>从指定位置开始(包括该指定位置的字符),截取之后所有字符

NSString *str1 = [str substringFromIndex:3];

<2>从字符串开头一直截取到指定位置,但是不包括该位置的字符

NSString *str2 = [str substringToIndex:3];

<3>按照所给的位置和长度,从字符串中截取子串

NSString *str3 = [str substringWithRange:NSMakeRange(2, 2)];        // NSMakeRange 快速构建NSRange(下标,长度)

5,字符串大小写转换

NSString *str = @"xiAo m/eI mei";

NSLog(@"%@",[str uppercaseString]);    //全部改成大写

NSLog(@"%@",[str lowercaseString]);    //全部改成小写

NSLog(@"%@",[str capitalizedString]);    //首字符大写,包括空格和字符断开的情况,也改成大写

6.字符串各种比较

  NSString *str1 = @"hello boby";

  NSString *str2 = @"hello dowhat";

<1> 比较字符串的地址

  BOOL b = (str1 == str2);      // 比的是两个字符串的内存地址

NSLog(@"%d",b);

<2>两个字符串的值是否相等

BOOL b = [str1 isEqualToString:str2];    //比的两个字符串的内容是否相同,返回一个BOOL类型值

NSLog(@"%d",b);

<3> 对字符串大小进行比较

NSComparisonResult result = [str1 compare:str2];    //按照字母进行比较,设置一个枚举的类型返回值,返回值(NSOrderedSame   NSOrderedAscending  NSOrderedDescending)

switch (result) {

case  NSOrderedSame:

      NSLog(@"相同");

break;

case  NSOrderedAscending:

    NSLog(@"前小后大");

break;

case  NSOrderedDescending:

     NSLog(@"前大后效");

break;

default:

break;

}

<4>判断字符串是否以某个字符开头/结尾(关键词has)

BOOL b3 = [str1 hasPrefix:@"boby"];  //对字符串前缀进行判断

BOOL b4 = [str2 hasSuffix:str1];     // 对字符串后缀进行判断

<5>查找字符串中是否包含某字符

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

if (range.location != NSNotFound) {

}

  else{

}

7.字符串拷贝

NSString *str8 = [NSString stringWithString:str3];    //字符串属性遵循copying协议

NSLog(@"%@",str8);

8.字符中内容的替换(关键字replacing)

NSString *string1 = @"abcdefg",*string2 = @"higkllmn";

NSString *str1 = [string1 stringByReplacingCharactersInRange:NSMakeRange(2, 3) withString:string2];      //从中间截取几个字符串替换为withString后面的字符

NSString *str2= [string1 stringByReplacingOccurrencesOfString:@"a"withString:@"ABV"];        //把字符串中的出现过的字符"a"全部替换为"ABV"

9. 可变的字符串类型

NSString是不可变字符串,不能删除字符或添加字符(上面的操作都会开辟一个新的字符串来保存添加或替换后的字符串,原串并不会改变).

Cocoa提供了一个 NSString的子类: NSMutableString.由于是NSString的子类,所以NSMutableString继承了NSString的所有方法.

 当我们创建可变的字符串(或者之后学习的所有可变数组,字典,集合等)一定要先初始化,再进行使用.

<1>初始化方法

NSMutableString *mutablestring = [NSMutableString  string];    //类方法初始化(使用极少)

NSMutableString *mstr1 = [[NSMutableString  alloc] init];      //init实例方法初始化

NSMutableString *mstr2 = [[NSMutableString  alloc] initWithCapacity:0];  //指定初始化方法,capacity是申请内存空间,但兄台那个会根据字符串的增减自动调整内存空间大小(工程中使用较多)

<2>自己独有的SDK

[mstr1 setString:@"嘿嘿嘿"];    //对一个字符串进行赋值或重置(替换原来的内容)

NSMutableString *mstr3 = [NSMutableString stringWithFormat:@"四是四,十是十,四十是四十"];

[mstr3 insertString:@"逗比"atIndex:1];    //插入一个字符串,在某一个位置

[mstr3 deleteCharactersInRange:NSMakeRange(3, 2)];    //删除某一个范围内的字符串

 NSMutableString *m1 = [NSMutableStringstringWithCapacity:0];

NSMutableString *m2 = [NSMutableStringstringWithString:@"Tom"];

[m1 appendString:@"哈哈"];  //给字符串赋值(OC比较灵活)

[m1 appendFormat:@"age is %d",12];    //在后面插入某一段字符串

[m1 replaceCharactersInRange:NSMakeRange(3, 2) withString:@"逗比"];  //替换掉字符窜中的内容,在自己选择位置

NSString字符串类型-学习总结的更多相关文章

  1. C++学习日记(二)————初始字符串类型

    使用频率高,但操作复杂的数据有哪些? 做下总结: int; double;float;char;bool这些类型用的比较频繁,但并不复杂.但对于字符串来说(char数组)用的频繁但操作又复杂,只能用一 ...

  2. Python学习笔记(二):字符串类型

    在上一篇随笔(https://www.cnblogs.com/g-qiang/p/10448813.html)中,说到 Python 有六种标准数据类型,而数字类型和字符串类型又是其中基本的数据类型. ...

  3. Python学习笔记(三)字符串类型及其操作(2)

    1.字符串的表示 字符串是字符的序列表示,可以由一对单引号(‘).双引号(“)或三引号(’‘’)构成.其中,单引号.双引号和三引号都可以表示单行字符串,但是只有三引号可以表示多行字符串 在使用双引号时 ...

  4. 学习笔记:MySQL字符串类型

    字符串类型 a)         char和varchar 1.都需要指定字符的长度,char中的长度是字符的长度,而varchar的长度是字节的长度 2. char中指定的长度就是实际占用的长度,而 ...

  5. python学习笔记(5-1)-基本数据类型-字符串类型及操作

    五.字符串处理函数  len(x):字符串x的长度.如len("12345")结果为5  str(x):任意类型x所对应的字符串形式. >>> str(123) ...

  6. mysql学习1:数据类型:数字型,日期和时间,字符串类型(总结)

    mysql数据类型:数字型,日期和时间,字符串类型 摘要 MySQL中定义数据字段的类型对数据库的优化是非常重要的: MySQL支持多种类型,大致可以分为三类,如下. 数字类型 整数:tinyint. ...

  7. Python3中的字符串函数学习总结

    这篇文章主要介绍了Python3中的字符串函数学习总结,本文讲解了格式化类方法.查找 & 替换类方法.拆分 & 组合类方法等内容,需要的朋友可以参考下. Sequence Types ...

  8. Redis常用命令入门1:字符串类型命令

    Redis总共有五种数据类型,在学习的时候,一定要开一个redis-cli程序,边看边练,提高效率. 一.最简单的命令 1.获得符合规则的键名列表 keys * 这里的*号,是指列出所有的键,同时*号 ...

  9. NSString字符串

    要把 “2011-11-29” 改写成 “2011/11/29”一开始想用ios的时间格式,后来用NSString的方法搞定. [string stringByReplacingOccurrences ...

随机推荐

  1. java下io文件切割合并功能加配置文件

    package cn.stat.p1.file; import java.io.File; import java.io.FileInputStream; import java.io.FileNot ...

  2. [转]Windows与Linux系统下的库文件介绍

    什么是库   库文件是一些预先编译好的函数的集合,那些函数都是按照可再使用的原则编写的.它们通常由一组互相关联的用来完成某项常见工作的函数构成,从本质上来说库是一种可执行代码的二进制形式,可以被操作系 ...

  3. linux 下使用crontab+wget实现秒及定时任务

    输入命令 crontab -e 打开一个文件,默认的编辑器为vi. 输入vi编辑器,输入i为插入,输入w保存,q退出,!强制.wq!强制保存并退出. * * * * * /usr/bin/wget - ...

  4. 如何在Ubuntu 14.04中使用Samba共享文件

    Linux 下的文件共享利器 Samba 想必大家已经非常熟悉了,今天我们介绍下如何在Ubuntu 14.04中使用 Samba 共享网络文件.打印机和其它公共资源. 1.安装 Samba 和图形配置 ...

  5. 一定要学会OutputDebugString,方便源码级调试

    省得到处自己print,麻烦的要死...

  6. 如何查找到文件以后,带目录一起拷贝到新的目录? cp --parents source destination

    如何查找到文件以后,带目录一起拷贝到新的目录? cp --parents  source  destination

  7. Html.DropDownList的用法

    直接上代码 页面代码 <td> <%= Html.DropDownList("selCity") %> </td> controller里面的代 ...

  8. "V租房"搭建微信租房平台,让租房人发起求租需求并接收合适房源回复,提高租房效率 | 36氪

    "V租房"搭建微信租房平台,让租房人发起求租需求并接收合适房源回复,提高租房效率 | 36氪 "V租房"搭建微信租房平台,让租房人发起求租需求并接收合适房源回复 ...

  9. Spring事务管理器分类

    Spring并不直接管理事务,事实上,它是提供事务的多方选择.你能委托事务的职责给一个特定的平台实现,比如用JTA或者是别的持久机制.Spring的事务管理器可以用下表表示: 事务管理器的实例 目标 ...

  10. 又一编辑神器-百度编辑器-Ueditor

    (Lionden<hsdlionden@gmail.com> 转载说明) 前段时间发表过一篇关于“KindEditor在JSP中使用”的博文.这几天在沈阳东软进行JavaWeb方面的实习工 ...