NSString字符串类型-学习总结

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 [email protected]"明明知道相思苦";

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:@"逗比"];  //替换掉字符窜中的内容,在自己选择位置

时间: 2024-08-08 05:36:55

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

Objective-C学习- 字符串类型 NSString 和 NSMutableString

相比于C语言来讲,一般面向对象的语言都有一种类型来专门的处理字符串类型,如C++的string,JAVA的String..  Objectiver-C 自然也有种类型来专门处理字符串,叫做NSString. Objective-C中的字符串也分为两种:NSString(不可变字符串),NSMutableString(可变字符串),NSMutableString类是NSString的一个子类. 注:Objective-C中的字符串 都需要用@"内容",前边必须要用一个@ (1)NSStr

Redis学习之字符串类型详解

本文和大家分享的主要是Redis中字符串相关内容,一起来看看吧,希望对大家学习redis有所帮助. 字符串类型是最基本的数据类型,能够存储所有的字符串,包括二进制数据 json 化对象, 一个字符串类型的键的数据的最大容量是 512 MB 字符串类型是其他几种类型的基础,如列表类型是以列表的形式组织字符串,集合类型是以集合的形式组织字符串 获得符合规则的键名列表 keys pattern # ? 匹配一个字符 # *  匹配任意一个字符 # [] 匹配括号中的任意一个字符.可以使用 - 表示范围

Python学习笔记整理四--字符串类型

定义:元素以引号包围的.元素可以是任意类型的有序的不可修改的序列: 定义字符串: str()  如:a = str(1234) ''     如:a = 'nihao' ""    如:a = "nihao" ''' ''', """ """ 如:a = '''nihao''', a = """nihao""" 注意: 当需要用到缩写如I'm时,就

学习笔记:MySQL字符串类型

字符串类型 a)         char和varchar 1.都需要指定字符的长度,char中的长度是字符的长度,而varchar的长度是字节的长度 2. char中指定的长度就是实际占用的长度,而varchar指定的长度只是一个范围,所以varchar还要拿1-2个字节存储该字符串到底有多少个字节,并且varchar中能够实际存储的字符跟编码有关(utf8编码20000多,gbk编码30000多) 3.varchar对存储空间的占用更灵活,但是char的效率更高 4.如果字符串的长度是固定已

Redis学习笔记---字符串类型

补充 上篇笔记博客中有些有些关键点未提到,现在这里补充下 redis help 命令 help命令应该是我们使用任何一款软件产品经常用到的命令,有时候通过help命令能够更快的获取相关帮助,而不仅仅通过百度.同样,在Redis中的help命名写的就非常简洁易懂,虽然是只有英文版的帮助信息,但是只要有一定应用基础的人都可以看懂,如: 127.0.0.1:6379> help redis-cli 3.0.2 Type: "help @<group>" to get a l

Redis学习笔记08Redis数据类型之(1) 字符串类型

1.1.1. set 设置字符串类型的键值,如果键已存在,则之前的值被覆盖,不关注之前的键值的类型. 语法: SET key value [EX seconds] [PX milliseconds] [NX|XX] 参数: key  键名 value 键值 EX seconds - 过期时间,秒. PX milliseconds -- 过期时间,毫秒. NX -- 仅仅当键不存在时才设置. XX -- 仅仅当键已经存在时才设置. 返回值: OK:操作成功. nil:操作失败. 例子: redis

Redis学习笔记(字符串类型常见命令操作)

Redis字符串类型常见命令操作 存取数据 存字符串类型数据: 取字符串类型数据: 当键不在的时候会返回空 如果重复向一个键中存数据,后存储的数据会覆盖前存储的数据 递增数字 当存的字符串是整数形式的时候,Redis提供一个: INCR命令    作用:让当前键值递增,并返回递增后的值 当要递增的键值不存在的时候,redis会自动存入这个键,默认值为0,并把值递增 键的命名 键名Redis没有强制要求,一般命名形式为: 对象类型:对象ID:对象属性 例如: user:1:name  使用这个来存

深入.Net字符串类型 Join方法

.Net的字符串其实还是有很多东西可以写的.但是最近在学习SQL Server,只好先做下最近学习到的一些巧用,妙用之类的东西. 巧用String.Join拼接字串数组,字符串集合为字符串.如果在之前,一个foreach早就敲上去了.虽然效率差多,但是少了个foreach,还是美观不少的. class Program { static void Main(string[] args) { List<string> listStr = new List<string>(); list

mysql字符串类型、列属性及外键

字符串类型 Char 和varchar 在定义char 跟varchar时,都需要设置长度. 语法: char(M); 最大长度为255 varchar(M); 最大长度为65532 不同编码长度不同 GBK最大为:32767 utf8最大为:21845 M为长度! 两者区别: Char的M是固定的,即使输入的字符长度小于M值,该字符长度也会被定义为M值: 效率更快,使用一些固定字符长度的时候可以使用,例:电话号码.身份证号码等! Varchar的M是范围性值,只要不超过M,输入的值长度为多少即