oc 知识总结一(NSString、NSMutableString)
2015-12-18 18:48
429 查看
注:
OC中提供了NSString类,⽤于处理字符串对象,oc语⾔言的字符串必须以@开头,引号当中则是字符串的内容,例如@”abc”
一、NSString(不可变字符串)
1、创建字符串
1>方法一、使用字符串常量NSString *str=@"helloabc";
NSLog(@"%@",str);
输出结果:
2>方法二、使用类方法
NSString *str1=[NSStringstringWithFormat:@"%i",5];
NSString *str2=[NSStringstringWithUTF8String:"hello!"];
NSLog(@"%@",str1);
NSLog(@"%@",str2);
输出结果:
2、字符串的常用方法
1>获取字符串的长度(length)NSLog(@"%ld",[strlength]);
2>改变字符串大小写
uppercaseString 转换大写
lowercaseString 转换小写
capitalizedString 首字母大写,其他字母小写
例子:
NSString *str=@"helloabc";
NSLog(@"%@",[struppercaseString]);//转化成大写
NSLog(@"%@",[strlowercaseString]);//转化成小写
NSString *str3=@"hello, world!";
NSLog(@"%@",[str3capitalizedString]);//开头字母大写
输出的结果:
3>比较两个字符串的是否相等
(1)isEqualTo:判断两个对象是否相等
(2)isEqualToString:判断这个对象是否等于你所给的字符串
例1:
NSString *str=@"helloabc";
NSString *str3=@"hello, world!";
if([str3isEqualTo:str]){
NSLog(@"两个字符串相等");
}else{
NSLog(@"两个字符串不相等");
}
输出结果:
例2:
NSString *str3=@"hello, world!";
if([str3isEqualToString:@"hello, world!"]){
NSLog(@"两个字符串相等");
}else{
NSLog(@"两个字符串不相等");
}
输出结果:
4>将字符串转换为基本数据类型
(1)转换成int类型:[string intValue];
(2)转换成float类型:[string floatValue];
(3)转换成double类型:[string doubleValue];
(4)转换成bool类型:[string boolValue];
例:
NSString *str = [NSStringstringWithFormat:@"%i",20];
NSLog(@"%i",[strintValue]);
NSLog(@"%f",[strfloatValue]);
NSLog(@"%f",[strdoubleValue]);
NSLog(@"%d",[strboolValue]);
输出结果:
5>截取字符串
(1)方法一:substringToIndex:从0开始截取到指定位置,不包含指定位置[0,index)
(2)方法二:substringFromIndex:从指定位置开始截取到末尾[index,length-1]
(3)方法三:substringWithRange:截取一个区间
例:
//------------------------------截取字符串-----------------------------------------------------
NSString *str=@"hello+world!";
//方法1:从0开始截取到指定位置,不包含指定位置[0,index)
NSString *str1=[strsubstringToIndex:5];
NSLog(@"%@",str1 );
//方法2:从指定位置开始截取到末尾,[index,length-1]
NSString *str2=[strsubstringFromIndex:6];
NSLog(@"%@",str2 );
//方法3:截取一个区间
NSRange rang=NSMakeRange(3,5);
NSString *str3=[strsubstringWithRange:rang];
NSLog(@"%@",str3);
输出结果:
6>拼接字符串
stringWithFormat:
例:
//-------------------------------拼接字符串---------------------------------------------------
NSString *name =@"sunshine_leaf";
int age =
18;
NSString *str = [NSStringstringWithFormat:@"^_^我的姓名:%@,年龄:%i!!!!^_^",name,age];
NSLog(@"拼接的字符串:%@",str);
输出结果:
7>追加字符串
(1)stringByAppendingString:
(2)stringByAppendingFormat:
例:
//----------------------------------追加字符串----------------------------------------------------------
NSString *name =@"sunshine_leaf";
NSString *str = [name
stringByAppendingString:@"阳光_叶子"];
NSString *str1 = [namestringByAppendingFormat:@"寓意:%@",@"在光明,温暖的地方的一片小小的叶子"];
NSLog(@"使用第一种方法的结果:%@,\n使用第二种方法的结果:%@",str,str1);
输出结果:
8>将字符串分割成数组
componetsSeparatedByString:以某个字符为分割依据
//-----------------------------------将字符串分割成数组-------------------------------------------
NSString *str =@"1,2,3,4,5,6,7,8";
NSArray *array = [strcomponentsSeparatedByString:@","];
for (NSString *sin array) {
NSLog(@"数组中的元素:%@",s);
}
输出结果:
二、NSMutableString(可变字符串)
1、创建可变字符串(1)方式一:创建一个空的字符串
NSMutableString *str=[NSMutableStringstring];
(2)方式二:创建一个指定大小的字符串
NSMutableString *str=[NSMutableStringstringWithCapacity:100];
(3)方式三:创建一个指定内容的字符串
NSMutableString *str3=[NSMutableStringstringWithString:@"hello"];
2、给可变字符串设置值
setString:
示例:
//
创建一个空的字符串
NSMutableString *str=[NSMutableStringstring];
[str setString:@"你好"];
NSLog(@"str:%@",str);
//创建一个指定大小的字符串
NSMutableString *str2=[NSMutableStringstringWithCapacity:100];
[str2 setString:@"世界"];
NSLog(@"str2:%@",str2);
//设置字符串内容setString
NSMutableString *str3=[NSMutableStringstringWithString:@"hello"];
[str3 setString:@"world"];
NSLog(@"str3:%@",str3);
输出结果:
注:使用setString:会把原有的字符串变成了设置的那个字符串,相当于覆盖了。
3、给可变字符串插入字符
insertString:atIndex:在指定插入字符
例:
NSMutableString *str=[NSMutableStringstring];
//在空字符串的前面插入一个字符
[str insertString:@"1"atIndex:0];//每次插入的都是o号位置
[str insertString:@"1"atIndex:0];
[str insertString:@"1"atIndex:0];
[str insertString:@"1"atIndex:0];
NSLog(@"str:%@",str);
//创建一个指定大小的字符串
NSMutableString *str2=[NSMutableStringstringWithCapacity:100];
[str2 setString:@"世界"];
[str2 insertString:@"时间"atIndex:1];
NSLog(@"str2:%@",str2);
//设置字符串内容setString
NSMutableString *str3=[NSMutableStringstringWithString:@"hello"];
[str3 insertString:@"world"atIndex:4];
NSLog(@"str3:%@",str3);
输出结果:
4、给可变字符串拼接字符
appendString:拼接
appendFormat:格式化拼接
例:
//将用户名和域名拼接成邮箱
NSString *userName=@"zhangsan";
NSString *domainName=@"163.com";
NSMutableString *email=[NSMutableStringstring];
//方法一:使用appendString进行拼接
[email appendString:userName];
NSLog(@"%@",email);
[email appendString:@"@"];
NSLog(@"%@",email);
[email appendString:domainName];
NSLog(@"%@",email);
//方法二:使用appendFormat进行拼接
[email appendFormat:@"%@@%@",userName,domainName];
NSLog(@"%@",email);
输出结果:
5、删除字符串
deleteCharactersInRange:从指定范围中删除元素
例:
//删除字符串
NSMutableString *str4=[NSMutableStringstringWithString:@"hello
world!#$"];
NSRange rang=NSMakeRange(6,7);
[str4 deleteCharactersInRange:rang];
NSLog(@"%@",str4);
输出结果:
6、替换字符串
replaceCharactersInRange: withString:用指定的字符串在指定的范围进行替换
例:
//替换字符串
NSMutableString *str=[NSMutableStringstringWithString:@"hello
world!#$"];
NSRange rang=NSMakeRange(6,7);
[str replaceCharactersInRange:rangwithString:@"叶子"];
NSLog(@"%@",str);
输出结果:
相关文章推荐
- js 判断微信浏览器(转)
- 从STM32固件库开始
- Android开发环境的搭建之(二)Android Studio的安装
- 单机版五子棋
- Mini2440裸机液晶屏TD35驱动
- 堆栈平衡
- C++11: regex #1
- scanf函数
- 文章标题
- IOS设备设计完整指南
- jeecms从mysql更换oracle
- iOS Xcode工程目录的 folder 和 group的区别(蓝色和黄色文件夹的区别)
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Qt-获取网络接口信息的综合示例
- cassandra优秀博客集
- unity3d 依据指定的Assets下的目录路径 返回这个路径下的全部文件名称
- 【转】软件测试修炼之道
- n皇后问题回溯法---java图形界面实现回溯过程
- 小菜的性能日记 2
- android 跑马灯效果