您的位置:首页 > 大数据 > 人工智能

Snail—OC学习之字符串NSString

2015-07-20 17:51 363 查看
首先,看一下不可变字符串NSString的方法
<span style="white-space:pre">	</span>//最直接的定义一个字符串
NSString * str1 = @"我是Snail";
//通过一个字符串来创建另一个字符串
NSString * str2 = [[NSString alloc] initWithString:str1];
//下面这个方法跟上面这个是一个意思
NSString * str3 = [[NSString alloc] initWithString:@"我是Snail"];
//C语言的字符串转换成OC字符串对象
NSString * str4 = [[NSString alloc] initWithUTF8String:"我是C语言字符串"];
//OC字符串转换成C语言的字符串
char * p = [str1 UTF8String];
//格式化的形式进行创建字符串(对不同类型数据进行拼接)
int a = 5;
float b = 2.5;
NSString * temp = @"我为梦想而生";
NSString * str5 = [NSString alloc] initWithFormat:@"%d,%.1f,%@",a,b,temp ];

//下面这些方法都是NSString的类方法 也有一些方法来创建字符串
//格式化的形式创建字符串
NSString * str6 = [NSString stringWithFormat:@"%d,%.1f,%@",a,b,temp];
//把C语言字符串转换成OC字符串
NSString * str7 = [NSString stringWithUTF8String:"我是Snail"];
//根据存在的字符串创建一个新的字符串
NSString * str8 = [NSString stringWithString:str1];

//%@格式符可以输出对象的值
NSLog(@"%@",str2);

NSString的一些相关方法

NSString * str = @"My name is Snail.";
//NSInteger 有符号整型 跟C的int差不多
//字符串的长度
NSInteger length = [str length];
//unichar 类似于C语言的char ,都表示字符
unichar a = [str characterAtIndex:1];
//将str全部转换为大写
NSString * str2 = [str uppercaseString];
//将str全部转换成小写
NSString * str3 = [str lowercaseString];
//首字母大写
NSString * str4 = [str capitalizedString];
//判断字符串的前缀
NSString * url = @"www.baidu.com";
BOOL ret1 = [url hasPrefix:@"www"];
BOOL ret2 = [url hasSuffix:@"com"];


字符串的比较各种方法

//判断两个字符串是否相等
NSString * str1 = @"My name is Snail.";
NSString * str2 =  @"My name is Snail.";
BOOL ret1 = [str1 isEqualToString:str2];
if (ret1) {
NSLog(@"str1 与 str2 的值相等");
}

//比较两个字符串的大小,即就是比较两个字符串相应位置字符的ASCII码的大小
NSString * str3 = @"asdsfgffg";
NSString * str4 = @"asdsfgffg";
NSString * str5 = @"asdsfgffgaad";
//比较的返回值是NSComparisonResult
/*
NSOrderedAscending 升序 后者大    -1
NSOrderedSame,     相等           0
NSOrderedDescending 降序 前者大    1
*/
NSComparisonResult ret2 = [str3 compare:str4];
if (ret2 == 0) {
NSLog(@"str3跟str4的值相等  ret2=0");
}
NSComparisonResult ret3 = [str3 compare:str5];
if (ret3 == -1) {
NSLog(@"str3小于str5   ret3=-1");
}
NSComparisonResult ret4 = [str5 compare:str3];
if (ret4 == 1) {
NSLog(@"str5 大于 str3  ret4==1");
}

//不区分大小写比较
NSString * str6 = @"AshsadaS";
NSString * str7 = @"sadsadwS";
BOOL ret5 = [str6 caseInsensitiveCompare:str7];


子串的查找方法

NSString * str = @"我是卖报的小画家";
NSString * findStr = @"的小";

//判断findStr是否在str中存在
//返回值是NSRange 是一个结构体 有一个location(表示下标) length(表示长度)
NSRange range = [str rangeOfString:findStr];
if (range.location == NSNotFound) {
NSLog(@"不存在");
}else{
NSLog(@"findStr在str的下标是:%lu,长度是%lu",range.location,range.length);
}


子串的提取

NSString * str = @"My name is Snail";
//提取到相应下标的之前的字符串 不包括指定位置的字符
NSString * str1 = [str substringToIndex:5]; //str1:My na
//提取到字符串尾部 包括指定位置的字符
NSString * str2 = [str substringFromIndex:5]; //str2 :me is Snail
//提取一个范围的字符串
NSRange range = NSMakeRange(4, 5);
NSString * str3 = [str substringWithRange:range]; //str3:ame i
NSLog(@"%@",str3);


字符串转换成基本类型

//字符串的编外方法
NSString * str = @"1234.245";
int a = [str intValue];
NSLog(@"%d",a); // a=1234;
float b = [str floatValue];
NSLog(@"%.2f",b);// b = 1234.24
NSInteger c = [str integerValue];
NSLog(@"%ld",c);//c = 1234;


下一篇讲可变的字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: