//
// MyViewController.m
// NSStringDemol
//
// Created by bml on 14-5-13.
// Copyright (c) 2014年 bml. All rights reserved.
//
/*基本数据类型NSstring的应用和理解
1.objective-c中核心处理字符串的类是 NSString 和 NSMutableString,这俩个类他们最大的区别就是Nsstring在创建赋值以后的字符串的内容和长度不能在动态改变,除非是从新赋值 ,而NSMutableString创建赋值以后可以动态在该字符串更改长度 和内容。
*/
#import "MyViewController.h"
@interface MyViewController ()
@end
@implementation MyViewController
- (void)viewDidLoad
{
[super viewDidLoad];
/************经典的字符串赋值***********/
NSString *str1 = @"hello my name is 草帽";
NSLog(@"str1----------->%@",str1);
/*********将任意格式转化为字符串 格式包括 NSString*类型 int类型 char*类型*********/
NSString *str2 = [NSString stringWithFormat:@"我的名字:%@ 我的年龄: %d 我的英文名字:%s",@"草帽",23,"straw hat"];
NSLog(@"str2---------->%@",str2);
/**********符传赋值与第一个类似************/
NSString *str3 = [NSString stringWithString:@"我和str1类似"];
NSLog(@"str3---------->%@",str3);
/*********字符串转换为utf-8格式 参数为char*类型 ******/
NSString *str4 = [NSString stringWithUTF8String:"字符串转换utf-8格式"];
NSLog(@"str4---------->%@",str4);
/*********字符串的合并********/
//1.将不同类型的数据合并成一个字符串
//将tem和a,c,合并
int a = 24;
char *c = "strawHat";
NSString *tem = @"整数类型和字符类型分别是:";
NSString *str5 = [tem stringByAppendingFormat:@"整型:%d 字符型 %s",a,c];
NSLog(@"合并结果--------->%@",str5);
/*********追加字符串****************/
NSString *tem1 =@"我是被追加的";
NSString *str6 = [tem stringByAppendingString:tem1];
NSLog(@"在tem后加字符串tem-----%@",str6);
//判断字符串中是否包含一个字符串
[self containsString];
//字符串便利 就是将每个nsstring 中的char提取出来
[self nstringTraverse];
//isEqualToString 比较字符串是否完全相等,大小写不一样也无法完全匹配。
//hasPrefixe 匹配字符串头
//haSuffix 匹配字符串的尾巴
[self stringtoCompare];
//字符串的截取与大小写改变
[self interceptionAndCase];
//搜索字符串与替换字符串
[self searchAndReplace];
//注意:在NSString 中存在自己的实例化和初始化的方法
//下面是 关于本地文件的操作 还有很多关于编码格式 和 URL 的 操作 就不一一写啦!
//读取文本文件
/*NSString
+ (id)stringWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error //自动释放内存
- (id)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error
例如:
NSString *string = [NSString stringWithContentsOfFile:@"/user/test/yw.txt" encoding:NSUTF8StringEncoding error:&error];
if(string){}
//输出文本文件
NSString
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error
//参数 atomically 暂时将文件保存到辅助文件中*/
}
//字符串便利 就是将每个nsstring 中的char提取出来
-(void)nstringTraverse
{
//经典的字符串赋值
NSString *str = @"strawHat";
//字符串的长度
int count = [str length];
NSLog(@"字符串的长度是%d",count);
//遍历字符串中的每一个字符
for(int i =0; i < count; i++)
{
char c = [str characterAtIndex:i];
NSLog(@"字符串第 %d 位为 %c",i,c);
}
}
//判断字符串中是否包含一个字符串
-(void)containsString
{
//判断字str是否包含字符传str1
NSString *str =@"my name is caomao";
NSString *str1 = @"caomao";
if ([str rangeOfString:str1].location!=NSNotFound) {
NSLog(@"str包含str1");
}else
{
NSLog(@"str不包含str1");
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
//isEqualToString 比较字符串是否完全相等,大小写不一样也无法完全匹配。
//hasPrefixe 匹配字符串头
//haSuffix 匹配字符串的尾巴
- (void)stringtoCompare
{
NSString *str0 = @"caomao";
NSString *str1 = @"caobao";
//字符串完全相等比较
if([str0 isEqualToString:str1])
{
NSLog(@"字符串完全相等");
}
//字符串以开头比较
if([str0 hasPrefix:@"cao"])
{
NSLog(@"字符串str0以cao开头");
}
//字符串以结尾比较
if([str0 hasSuffix:@"mao"])
{
NSLog(@"str1字符串以mao结尾");
}
}
//搜索字符串与替换字符串
-(void)searchAndReplace
{
NSString *str0 = @"中文my name is caomao";
NSString *temp = @"is";
NSRange rang = [str0 rangeOfString:temp];
NSLog(@"搜索的字符串在str0中起始点的index 为 %d", rang.location);
NSLog(@"搜索的字符串在str0中结束点的index 为 %d", rang.location + rang.length);
//将搜索中的字符串替换成为一个新的字符串
NSString *str = [str0 stringByReplacingCharactersInRange:rang withString:@"caomao"];
NSLog(@"替换后字符串为%@", str);
//将字符串中" " 全部替换成 *
str = [str0 stringByReplacingOccurrencesOfString :@" " withString:@"*"];
NSLog(@"替换后字符串为%@", str);
/* 拓展:使用下面这个方法整体替换字符串还可以设置替换的区域。ons:<#(NSStringCompareOptions)#> range:<#(NSRange)#>
stringByReplacingOccurrencesOfString:(NSString *)withString:(NSString *) options:(NSStringCompareOptions) range:(NSRange)*/
}
//字符串的截取与大小写改变
-(void)interceptionAndCase
{
NSString *str0 = @"中文my name is caomao";
//截取字符串起始点到index为4之间的内容
NSString * to = [str0 substringToIndex:4];
NSLog(@"to = %@",to);
//截取字符index为2 到结尾之间的内容
NSString * from = [str0 substringFromIndex:2];
NSLog(@"from = %@",from);
//设置截取字符串的范围
//从第二位到第十位
NSRange rang = NSMakeRange(2, 10);
NSString * strRang = [str0 substringWithRange:rang];
NSLog(@"rang = %@",strRang);
//设置字符串首字母大写
NSLog(@"str0首字母大写:%@",[str0 capitalizedString]);
//设置字符串全部内容为大写
NSLog(@"str0大写:%@",[str0 uppercaseString]);
//设置字符全部内容为小写
NSLog(@"str0小写:%@",[str0 lowercaseString]);
}
@end