您的位置:首页 > 其它

OC_04_02

2015-12-16 09:59 417 查看
#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;

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