NSString字符串

NSString:不可变字符串

NSMutableString:可变字符串

//c语言中的字符串

char *s = "Hello";

NSString *str = @"Hello";

//OC , C字符串类型转换

//C -> OC

NSString *str1 = [NSString  stringWithUTF8String:s];

NSLog(@"str1 = %@",str1);

//OC->C

NSLog(@"str2 = %s",[str UTF8String]);

//创建字符串

NSString *str3 = @"iOS";

NSString *str4 = [[NSString alloc]init];

str4 = @"iOS";

//* 格式化字符串 *

int a = 10;

int b = 20;

NSString *str5 = [NSString stringWithFormat:@"a =  %d b = %d",a,b];

NSLog(@"str5 = %@",str5);

//字符串拼接

NSString  *str6 = [str5 stringByAppendingString:str3];

NSLog(@"str6 = %@",str6);

//大小写转换

//A

//转化小写

NSString *str7 = @"aBcDEf";

NSString *str8  = [str7 lowercaseString];

NSLog(@"str8 = %@",str8);

//转换大写9

NSString *str9 =  [str7 uppercaseString]j;

NSLog(@"str9 = %@",str9);

//前缀与后缀的判断

NSString *str10 = @www.imooc.com;

//判断前缀

BOOL hasPreFix = [str10 hasPrefix:@"www."];

if(hasPreFix){

NSLog(@"有对应前缀");

}

else{

NSLog(@"没有对应前缀");}

//判断后缀

BOOL *hasSuffix = [str10 hasSuffix:@".com"];

if(hasSuffix){

NSLog(@"有对应后缀");

}

else{

NSLog(@"没有对应后缀");

}

//判断两个字符串是否相同

NSString *str11 = @"hello";

NSString *str12 = @"hello";

if([str11 isEqualToString str12]){

NSLog(@"两个字符串一致");

}else{

NSLog(@"两个字符串不一致");

}

//比较字符串

NSComparisonResult

//分割

//按照指定字符分割字符串

NSString *str13 = @"a,b,c,d,e,f,g";

NSArray *strArray = [str13  componentsSeparatedByString:@","];

for(NSString *str in strArray){

NSLog(@"str = %@",str);

}

//按照范围截取字符串

NSRange range = NSMakeRange(1,5);

NSString *str14 = [str13 substringWithRange:range];

//NSString *str14 = [str13 substringWithRange:NSMakeRange(1,5)];

NSLog(@"str14 = %@",str14);

//从某一位开始截取后面的字符串(包含这一位)

NSString *str15 = [str13 substringFormIndex:2];

NSLog(@"str15 = %@",str15);

//从开头截取到某一位

NSString *str16 = [str13 substringToIndex:7];

NSLog(@"str16 = %@",str16);

//将字符串拆分为每一个字符

for(int i = 0;i < [str13 length];i++){

NSLog(@"%c",[str13 characterAtIndex:i]);

}

//查找

NSString *str17 = @"ab cd ef gh ij ab";

//查找指定字符串的位置

NSRange range1 = [str17  rangeOfString:@"ab"];

NSLog(@"range1.location:%ld range1.length:%ld",range.location,range1.length);

//替换

NSString &str18 = @"Hello iOS ,Hello imooc";

//替换某一个范围的内容

NSString *str19 = [str18 stringByReplacingCharactersInRange:NAMakeRange(0,5) withString:@"你好"];

NSLog(@"str19 = %@",str19);

//用指定字符串题号源字符串中的字符串

/*

stringByReplacingOccurrencesOfString - 源字符串中要被替换的内容

withString - 替换的字符串

*/

NSString *str20 = [str18 stringByReplacingOccurrencesOfString:@"Hello" withString:@"你好"];

NSLog(@"str20 = %@",str20);

//读取文件

//文件来源:1.本地文件. 2.网络文件

//路径类

NSString *str21 = @"www.baidu.com";

//网络路径

NSURL *httpURL = [NSURL URLWithString:str21];

//本地路径

NSURL *fileURL = [NSURL fileURLWithPath:str21];

//读取网络文件

NSString *httpStr = [NSString stringWithContentsOfURL:httpURL encoding:NSUTF8StringEncoding error:nil];

NSLog(@"httpStr = %@",httpStr);

//读取本地文件

NSString *fileStr = [NSString stringWithContentsOfFile:@"/Users/Visitor/Desktop/text.txt " encoding :NSUTR8StringEncoding error:nil];

NSLog(@"fileStr = %@",fileStr);

//写入文件

NSString *str22 = @"Hello Visitor";

[str22 writeToFile:@"/Users/Visitor/Desktop/demo.txt" atomically: YES encoding:NSUTF8String error:nil];


//可变字符串是字符串的子类

NSMutableString *str = [[NSMutableString alloc]initWithCapacity:10];

[str setString:@"Hello"];

//1.追加字符串

[str appendString:@" world"];

NSLog(@"str = %@",str);

int a = 10;

[str appendingFormat:@"-%d",a];

NSLog(@"str = %@",str);

//2.替换字符串

NSRange range = [str rangeOfString:@"world"];

[str replaceCharactersInRange:range withString:@"iOS"];

//删除字符串

NSRange range1 = [str rangeOfString:@"AiOS"];

[str deleteCharactersInRange:range1];

NSLog(@"str = %@",str);














NSString 和 NSMutaleString的使用与注意

(一)6种创建字符串的形式

//最简单快速的创建方式

NSString *s1 = @"yangyong";

//NSString *s2 = [[NSString alloc] initWithString:@"rose"];

//使用格式

NSString *s3 = [[NSString alloc] initWithFormat:@"my age is %d",10];

//反过来OC字符串转变成C字符串

const char *cs = [s4 UTF8String];

//从文件读取信息到字符串

/NSUTF8StringENcoding 用到中文就可以用这种编码

NSString *s5 = [[NSString alloc]initWithContentOfFile:@"/Users/apple/Desktop/yangyngtest.txy" encoding:NSUTF8StringEncoding error :nil];

//根据资源路径读取内容到字符串

NSURL *url = [[NSURL alloc]initWithString@:@"filr:///Users/apple/Desktop/1.txt"];//这里有三个斜杠

NSURL *url  = [NSURL fileURLWithPath:@"/Users/apple/Desktop/yangyongtest2.txt"];//这里已经说明,所以不需要再包含协议头

//打印内容

NSString *s6 = [[NSString alloc]initWithCotentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

NSLog(@"s6 = \n%@",s6);

(二)使用注意

(1)字符串的导入导出

//把字符串写到文件,若这个文件不存在,则创建一个

[@"yangyong \n gaoding" writeToFile:@"/Users/apple/Desktop/yangyong.txt" atomically :YES encoding: NSUTF8StringEncoding error:nil];

//注意这里如果换行对的话可以使用\n的个数来测试代码量

//把字符串导入到资源位置

NSString *str = @"4234534yangyong";

NSURL *url = [NSURL fileURLWithPath@:"/Users/apple/Desktop/yangyong2.txt"];

[str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil];

//这里的atomically后面可以是YES 和NO,通常使用YES,这样更安全,若中途写入失败,则不再创建文件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容