#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
/*
构造字符串四种方式
NSString 不可变字符串
*/
//1.初始化一个字符串对象
NSString *string1 = @"ibokanwisdom";
// NSString *string2 = [NSString stringWithString:@"ibokanwisdom"];
// NSString *string3 = [[NSString alloc] initWithString:@"ibokanwisdom"];
//使用NSString的类方法来创建字符串,+ (instancetype)stringWithFormat:@"格式化标志符"
NSString *string4 = [NSString stringWithFormat:@"%d,%f,hi guys",5,4.5];
NSLog(@"string4 = %@",string4);
//用格式化方式来构造字符串实例来讲,其作用并不仅仅来构造一个字符串对象,它还可以用来做字符串的拼接
NSString *string5 = @"Yong";
NSString *string6 = @"666";
NSString *string7 = [NSString stringWithFormat:@"%@%@",string5,string6];
NSLog(@"string7 = %@",string7);
//从本地文件中读取字符串
NSStringEncoding encoding;// NSUTF8StringEncoding 中国专用
NSError *error;
NSString *path1 = @"/Users/8011/Desktop/OC/OC_04_02/OC_04_02/t.html";
NSString *string8 = [NSString stringWithContentsOfFile:path1 encoding:NSUTF8StringEncoding error:&error];
NSLog(@"string8 = %@,error = %@",string8,error);
//从网络读取字符串
// NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
// NSString *string9 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
// NSLog(@"string9 = %@",string9);
//字符串的操作
NSString *string10 = @"你是逗比么,我都受不了你了";
//字符串属性 长度 length
NSUInteger length = [string10 length];
NSLog(@"length = %lu",length);
//字符串的截取
NSString *subString1 = [string10 substringToIndex:5]; //获取从字符串开头到字符串的to的位置的字符串内容,不包括to位置,并且从0开始算起
NSLog(@"subString1 = %@",subString1);
NSString *subString2 = [string10 substringFromIndex:6];//获取从字符串Form位置到结尾的字符串内容,包含Form位置的字符
NSLog(@"subString2 = %@",subString2);
NSString *subString3 = [string10 substringWithRange:NSMakeRange(2, 2)]; //前面2代表从哪里开始,后面2代表截多少个
NSLog(@"subString3 = %@",subString3);
//获取字符串的某个字符
NSString *string12 = @"abcdefg";
char c = [string12 characterAtIndex:0]; //根据字符串中的位置index来得到一个字符,注意字符串的索引是从0开始的
NSLog(@"c = %c",c);
//字符串比较,如何判断两个字符串是否相等
if (subString2 == subString3) //内容和指针都相等时才成立
{
NSLog(@"subString2 和 subString3 相等");
}
else
{
NSLog(@"subString2 和 subString3 不相等");
}
/*
如何才能让两个字符串的指针和内容都相等呢?(书p96)
这里需要注意两个概念: 浅拷贝 和 深拷贝
浅拷贝:是指源对象与拷贝对象公用一份实体,仅仅是引用的变量名称不同.
深拷贝:是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另一个对象造成影响.
在字符串中,[NSString stringWithString:] 方法用于浅拷贝一个现有的字符串产生一个字符串
*/
NSString *subString4 = [NSString stringWithString:subString2];
NSString *subString5 = [NSString stringWithFormat:@"%@",subString2];
if (subString2 == subString5)
{
NSLog(@"subString2 和 subString5 相等");
}
else
{
NSLog(@"subString2 和 subString5 不相等");
}
//在实际开发过程中,我们通常只需要比较两个字符串的内容是否相等
if ([subString2 isEqualToString:subString5])
{
NSLog(@"subString2 和 subString5 内容相等 ");
}
else
{
NSLog(@"subString2 和 subString5 内容不相等 ");
}
//比较两个字符串的大小
NSString *cmpString1 = @"hehehehehehe";
NSString *cmpString2 = @"hahahahahaha";
NSComparisonResult result = [cmpString1 compare:cmpString2];
switch (result) {
case NSOrderedAscending:
{
NSLog(@"cmpString1 < cmpString2,升序");
}
break;
case NSOrderedSame:
{
NSLog(@"cmpString1 = cmpString2");
}
break;
case NSOrderedDescending:
{
NSLog(@"cmpString1 > cmpString2,降序");
}
break;
default:
break;
}
//根据字符串拿到对应的range
//NSString *string10 = @"你是逗比么,我都受不了你了";
NSRange range = [string10 rangeOfString:@"逗比"];
NSLog(@"%@",[NSValue valueWithRange:range]);
//只输出第一个遇到该字符串的位置 及 该字符串的长度
NSRange range1 = [string10 rangeOfString:@"你"];
NSLog(@"%@",[NSValue valueWithRange:range1]);
//判断字符串中是否有XX前缀 或 XX后缀
NSString *string13 = @"http://www.baidu.com";
if ([string13 hasPrefix:@"http://"])
{
NSLog(@"含有此前缀");
}
else
{
NSLog(@"不含有此前缀");
}
//判断是否为 jpg 或 png 后缀
NSString *string14 = @"dkjfkj.jpg";
if ([string14 hasSuffix:@".jpg"] || [string14 hasSuffix:@"png"])
{
NSLog(@"含有此后缀");
}
else
{
NSLog(@"不含有此后缀");
}
//字符串的拼接
NSString *string15 = @"www.baidu.com";
NSString *string16 = [@"http://" stringByAppendingString:string15]; //直接把两个字符串连接起来,调用者在前,传进来的字符串在后
NSLog(@"%@",string16);
//http://img0.bdstatic.com/img/image/shouye/hbmnp003.jpg
NSString *string17 = @"http://img0.bdstatic.com/img/image/shouye";
NSString *string18 = @"hbmnp003.jpg";
NSString *string19 = [string17 stringByAppendingFormat:@"/%@",string18];//连接两个字符串,并且第二个字符串是按一定格式传进来的
NSLog(@"%@",string19);
NSString *string20 = [string17 stringByAppendingPathComponent:string18];//连接两个字符串,自动生成(/)
NSLog(@"%@",string20);
NSString *string21 = @"http://img0.bdstatic.com/img/image/shouye/hbmnp003.jpg";
NSString *string22 =[string21 lastPathComponent];//只读取最后一个反斜杠后面的内容
NSLog(@"%@",string22);
NSString *theImageName = @"Yong";
NSString *theImageName2 =@"png";
NSString *string23 = [theImageName stringByAppendingPathExtension:theImageName2];//连接两个字符串,自动生成(.)
NSLog(@"%@",string23);
//字符串的其他常用方法
//1.字符串的转换函数
NSString *str1 = @"111add333";
int a1 = [str1 intValue];
float b1 = [str1 floatValue];
double c1 = [str1 doubleValue];
NSLog(@"%d",a1);
//字符串大小写转换函数
NSString *str2 = @"aaabb";
NSString *str3 = [str2 uppercaseString];//将字符全部改写成大写
NSLog(@"%@",str3);
NSString *str4 = [str3 lowercaseString];//将字符全部改成小写
NSLog(@"%@",str4);
NSString *str5 = [str2 capitalizedString];//将首个字符改写成大写,其余的都小写
NSLog(@"%@",str5);
//字符串的替换函数
NSString *str6 = [str2 stringByReplacingOccurrencesOfString:@"bb" withString:@"dd"];
NSLog(@"%@",str6);
NSString *str7 = [str2 stringByReplacingCharactersInRange:NSMakeRange(1, 2) withString:@"cc"];//将原字符串中range范围内的内容替换为replacement的内容
NSLog(@"%@",str7);
NSString *str8 = @"aa-bb-cc-dd-ee";
NSArray *array = [str8 componentsSeparatedByString:@"-"];//以separator为分隔符,将原字符的内容进行分割,分割得到的结果放到一个数组里,作为返回值
NSLog(@"array = %@",array);
}
return 0;
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
/*
构造字符串四种方式
NSString 不可变字符串
*/
//1.初始化一个字符串对象
NSString *string1 = @"ibokanwisdom";
// NSString *string2 = [NSString stringWithString:@"ibokanwisdom"];
// NSString *string3 = [[NSString alloc] initWithString:@"ibokanwisdom"];
//使用NSString的类方法来创建字符串,+ (instancetype)stringWithFormat:@"格式化标志符"
NSString *string4 = [NSString stringWithFormat:@"%d,%f,hi guys",5,4.5];
NSLog(@"string4 = %@",string4);
//用格式化方式来构造字符串实例来讲,其作用并不仅仅来构造一个字符串对象,它还可以用来做字符串的拼接
NSString *string5 = @"Yong";
NSString *string6 = @"666";
NSString *string7 = [NSString stringWithFormat:@"%@%@",string5,string6];
NSLog(@"string7 = %@",string7);
//从本地文件中读取字符串
NSStringEncoding encoding;// NSUTF8StringEncoding 中国专用
NSError *error;
NSString *path1 = @"/Users/8011/Desktop/OC/OC_04_02/OC_04_02/t.html";
NSString *string8 = [NSString stringWithContentsOfFile:path1 encoding:NSUTF8StringEncoding error:&error];
NSLog(@"string8 = %@,error = %@",string8,error);
//从网络读取字符串
// NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
// NSString *string9 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
// NSLog(@"string9 = %@",string9);
//字符串的操作
NSString *string10 = @"你是逗比么,我都受不了你了";
//字符串属性 长度 length
NSUInteger length = [string10 length];
NSLog(@"length = %lu",length);
//字符串的截取
NSString *subString1 = [string10 substringToIndex:5]; //获取从字符串开头到字符串的to的位置的字符串内容,不包括to位置,并且从0开始算起
NSLog(@"subString1 = %@",subString1);
NSString *subString2 = [string10 substringFromIndex:6];//获取从字符串Form位置到结尾的字符串内容,包含Form位置的字符
NSLog(@"subString2 = %@",subString2);
NSString *subString3 = [string10 substringWithRange:NSMakeRange(2, 2)]; //前面2代表从哪里开始,后面2代表截多少个
NSLog(@"subString3 = %@",subString3);
//获取字符串的某个字符
NSString *string12 = @"abcdefg";
char c = [string12 characterAtIndex:0]; //根据字符串中的位置index来得到一个字符,注意字符串的索引是从0开始的
NSLog(@"c = %c",c);
//字符串比较,如何判断两个字符串是否相等
if (subString2 == subString3) //内容和指针都相等时才成立
{
NSLog(@"subString2 和 subString3 相等");
}
else
{
NSLog(@"subString2 和 subString3 不相等");
}
/*
如何才能让两个字符串的指针和内容都相等呢?(书p96)
这里需要注意两个概念: 浅拷贝 和 深拷贝
浅拷贝:是指源对象与拷贝对象公用一份实体,仅仅是引用的变量名称不同.
深拷贝:是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另一个对象造成影响.
在字符串中,[NSString stringWithString:] 方法用于浅拷贝一个现有的字符串产生一个字符串
*/
NSString *subString4 = [NSString stringWithString:subString2];
NSString *subString5 = [NSString stringWithFormat:@"%@",subString2];
if (subString2 == subString5)
{
NSLog(@"subString2 和 subString5 相等");
}
else
{
NSLog(@"subString2 和 subString5 不相等");
}
//在实际开发过程中,我们通常只需要比较两个字符串的内容是否相等
if ([subString2 isEqualToString:subString5])
{
NSLog(@"subString2 和 subString5 内容相等 ");
}
else
{
NSLog(@"subString2 和 subString5 内容不相等 ");
}
//比较两个字符串的大小
NSString *cmpString1 = @"hehehehehehe";
NSString *cmpString2 = @"hahahahahaha";
NSComparisonResult result = [cmpString1 compare:cmpString2];
switch (result) {
case NSOrderedAscending:
{
NSLog(@"cmpString1 < cmpString2,升序");
}
break;
case NSOrderedSame:
{
NSLog(@"cmpString1 = cmpString2");
}
break;
case NSOrderedDescending:
{
NSLog(@"cmpString1 > cmpString2,降序");
}
break;
default:
break;
}
//根据字符串拿到对应的range
//NSString *string10 = @"你是逗比么,我都受不了你了";
NSRange range = [string10 rangeOfString:@"逗比"];
NSLog(@"%@",[NSValue valueWithRange:range]);
//只输出第一个遇到该字符串的位置 及 该字符串的长度
NSRange range1 = [string10 rangeOfString:@"你"];
NSLog(@"%@",[NSValue valueWithRange:range1]);
//判断字符串中是否有XX前缀 或 XX后缀
NSString *string13 = @"http://www.baidu.com";
if ([string13 hasPrefix:@"http://"])
{
NSLog(@"含有此前缀");
}
else
{
NSLog(@"不含有此前缀");
}
//判断是否为 jpg 或 png 后缀
NSString *string14 = @"dkjfkj.jpg";
if ([string14 hasSuffix:@".jpg"] || [string14 hasSuffix:@"png"])
{
NSLog(@"含有此后缀");
}
else
{
NSLog(@"不含有此后缀");
}
//字符串的拼接
NSString *string15 = @"www.baidu.com";
NSString *string16 = [@"http://" stringByAppendingString:string15]; //直接把两个字符串连接起来,调用者在前,传进来的字符串在后
NSLog(@"%@",string16);
//http://img0.bdstatic.com/img/image/shouye/hbmnp003.jpg
NSString *string17 = @"http://img0.bdstatic.com/img/image/shouye";
NSString *string18 = @"hbmnp003.jpg";
NSString *string19 = [string17 stringByAppendingFormat:@"/%@",string18];//连接两个字符串,并且第二个字符串是按一定格式传进来的
NSLog(@"%@",string19);
NSString *string20 = [string17 stringByAppendingPathComponent:string18];//连接两个字符串,自动生成(/)
NSLog(@"%@",string20);
NSString *string21 = @"http://img0.bdstatic.com/img/image/shouye/hbmnp003.jpg";
NSString *string22 =[string21 lastPathComponent];//只读取最后一个反斜杠后面的内容
NSLog(@"%@",string22);
NSString *theImageName = @"Yong";
NSString *theImageName2 =@"png";
NSString *string23 = [theImageName stringByAppendingPathExtension:theImageName2];//连接两个字符串,自动生成(.)
NSLog(@"%@",string23);
//字符串的其他常用方法
//1.字符串的转换函数
NSString *str1 = @"111add333";
int a1 = [str1 intValue];
float b1 = [str1 floatValue];
double c1 = [str1 doubleValue];
NSLog(@"%d",a1);
//字符串大小写转换函数
NSString *str2 = @"aaabb";
NSString *str3 = [str2 uppercaseString];//将字符全部改写成大写
NSLog(@"%@",str3);
NSString *str4 = [str3 lowercaseString];//将字符全部改成小写
NSLog(@"%@",str4);
NSString *str5 = [str2 capitalizedString];//将首个字符改写成大写,其余的都小写
NSLog(@"%@",str5);
//字符串的替换函数
NSString *str6 = [str2 stringByReplacingOccurrencesOfString:@"bb" withString:@"dd"];
NSLog(@"%@",str6);
NSString *str7 = [str2 stringByReplacingCharactersInRange:NSMakeRange(1, 2) withString:@"cc"];//将原字符串中range范围内的内容替换为replacement的内容
NSLog(@"%@",str7);
NSString *str8 = @"aa-bb-cc-dd-ee";
NSArray *array = [str8 componentsSeparatedByString:@"-"];//以separator为分隔符,将原字符的内容进行分割,分割得到的结果放到一个数组里,作为返回值
NSLog(@"array = %@",array);
}
return 0;
}