Foundation の NSString的常用方法_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Foundation の NSString的常用方法

Foundation の NSString的常用方法

 2015/4/28 3:13:27  夏雨mylove  程序员俱乐部  我要评论(0)
  • 摘要:1、NSString1.字符串的创建//创建一个新的空字符串NSstring*str=[NSstringstring]//初始化一个字符串,在赋值NSString*string=[[NSStringalloc]init];string=@"tianqi";NSstring*str=@"hello";NSString*str1=[NSStringstringWithString:@"helloworld"];NSString*str=[[NSStringalloc]initWithString
  • 标签:Foundation 方法 常用

1、NSString

1.字符串的创建 // 创建一个新的空字符串NSstring *str = [NSstring string]


// 初始化一个字符串,在赋值


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


 string = @"tianqi";


 


NSstring *str = @"hello";
NSString *str1 = [NSString stringWithString:@"hello world"]; 
NSString *str = [[NSString alloc] initWithString:@"hello world!"]; 
   
 NSString *str = [string stringByAppendingString:@"\nttt"];
NSLog(@"%@",str);
// 把C的字符串转化为OC的字符串
NSString *str = [[NSString alloc] initWithUTF8String:"hello world"]; 
NSString *str2 = [NSString stringWithUTF8String:"hello world"];

// 用格式化字符串初始化  可完成字符串的拼接以及完成C的字符串与OC的字符串的转化
int a = 123; 
NSString *str = [[NSString alloc]initWithFormat:@"a = %d %s%@", a, "abcd", @"efg"]; 
NSString *str3 = [NSString stringWithFormat:@"%s","hello world"];

2.字符串的转换

NSString * str = @"hello"; 
const char *p = [str UTF8String]; // 将OC字符串转化为C的字符串 

str = @"123"; 
int a = [str intValue]; // 将数字串转化成整型数据 
        [str floatValue]; // 将数字串转化成float型 
        [str doubleValue]; // 将数字串转化成double型 

// 结构体 输出
// 结构体 [点] 转换字符串
NSString *str = NSStringFromPoint(point);

// 结构体 [尺寸] 转换字符串
NSString *str = NSStringFromSize(size);

// 结构体 [矩形] 转换字符串
NSString *str = NSStringFromRect(rect);

3.字符串大小写转换

// 全部转为大写 
// 结果 ABC 
[@"abc" uppercaseString]
// 全部转为小写 
// 结果 bcd  
[@"BCD" lowercaseString]  
// 首字母大写 
// 结果 Acb  
[@"acb" capitalizedString]

4.字符串比较

// 比较两个字符串内容是否相同 
// 相等返回 yes 不相等返回 no
BOOL b =[str isEqualToString:str2];  

// 两个字符串内容比较  
// NSComparisonResult result = {NSOrderedAscending, NSOrderedSame,NSOrderedDescending} 
// NSOrderedAscending    右边 > 左边   
// NSOrderedSame         内容相同   
// NSOrderedDescending   左边 > 右边 
 
NSComparisonResult result = [str compare:str2]; 
NSComparisonResult result = [string compare:@"taojian" options:NSCaseInsensitiveSearch];
NSComparisonResult result = [string compare:@"taojian" options:NSCaseInsensitiveSearch range:NSMakeRange(0, string.length)];
NSComparisonResult result = [string compare:@"taojian" options:NSCaseInsensitiveSearch range:NSMakeRange(0, string.length) locale:nil];
NSComparisonResult  result = [string localizedCompare:@"taojian"];

 


//
忽略大小写进行比较 NSComparisonResult result = [str caseInsensitiveCompare:str2];
NSComparisonResult  result = [string localizedCaseInsensitiveCompare:@"zaojian

enum{
NSCaseInsensitiveSearch = 1,//不区分大小写比较
class="objc">    NSLiteralSearch = 2,//区分大小写比较
    NSBackwardsSearch = 4,//从字符串末尾开始搜索
    NSAnchoredSearch = 8,//搜索限制范围的字符串
    NSNumbericSearch = 64//按照字符串里的数字为依据,算出顺序。例如 Foo2.txt < Foo7.txt < Foo25.txt
//以下定义高于 mac os 10.5 或者高于 iphone 2.0 可用
    ,
    NSDiacriticInsensitiveSearch = 128,//忽略 "-" 符号的比较
    NSWidthInsensitiveSearch = 256,//忽略字符串的长度,比较出结果
    NSForcedOrderingSearch = 512//忽略不区分大小写比较的选项,并强制返回 NSOrderedAscending 或者 NSOrderedDescending
//以下定义高于 iphone 3.2 可用
    ,
    NSRegularExpressionSearch = 1024//只能应用于 rangeOfString:..., stringByReplacingOccurrencesOfString:...和 replaceOccurrencesOfString:... 方法。使用通用兼容的比较方法,如果设置此项,可以去掉 NSCaseInsensitiveSearch 和 NSAnchoredSearc




 5.字符串搜索

// 判断字符串是否以abc开头
[@"abcdfa" hasPrefix:@"abc"];  
 // 判断字符串是否bcd结尾   
[@"adbcd" hasSuffix:@"bcd"];  
 
// 判断字符串是否包含指定字符串,返回位置和长度   
NSRange range = [@"123456" rangeOfString:@"456"];  
// 反向搜索   
NSRange range = [@"123456456qweasasd456" rangeOfString:@"456" options:NSBackwardsSearch];  
// 指定范围进行搜索   
NSRange range = NSMakeRange(0, 9);  
range = [@"123456456qweasasd456" rangeOfString:@"456" options:NSBackwardsSearch range:range];

// 找与之开头相同的字符

NSString *string = @"fg   s  abcdefg hijklmn s     d \n fdsgf";

    NSString *str = [string commonPrefixWithString:@"fg" options:NSLiteralSearch];

6. 字符串截取

NSString * str5 = @"helloworld"; 
NSString * ptr1 = [str5 substringToIndex:2];// 字符串抽取 从下标0开始到4 不包括4 
NSString * ptr2 = [str5 substringFromIndex:4];// 从下标5开始抽取到字符串结束 包括5 
NSRange range1 = {6,2};// 结构体初始化 
NSString * ptr3 = [str5 substringWithRange:range1];// 在range指定范围内抽取 
NSString * ptr4 = [str5 substringWithRange:NSMakeRange(6,2)];// NSMakeRange可以生成一个结构体 

    NSString *string = @"   s  abcdefg hijklmn s     d \n fdsf";

    

    // 根据\n一行一行的打印

    [string enumerateLinesUsingBlock:^(NSString *line, BOOL *stop) {

        NSLog(@"\n%@",line);

    }];

 

 

NSString *string = @"   s  abcdefg hijklmn s     d ";

    NSMutableString * outputString = [NSMutableString string];


    // NSStringEnumerationByWords:将string按空格分开,并且会自动清理首尾的空格

    // 这个方法会把中间多余的空格也清理掉,比如上面的字符串,s和d之间有两个空格,会变成一个空格

    [string enumerateSubstringsInRange:NSMakeRange(0, string.length) options:NSStringEnumerationByWords usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {



        [outputString appendFormat:@"%@ ",substring];

    }];


    // 删除我们添加的末尾的一个空格

    [outputString deleteCharactersInRange:NSMakeRange(outputString.length-1, 1)];


    NSLog(@"\n%@",outputString);

 // 清楚左右两段的空格

NSString *str = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

// 在字符串后面补0

    NSString *str = [string stringByPaddingToLength:12 withString:@"0" startingAtIndex:0];

 



7.路径操作与数组操作

 // 用指定字符串分割字符串,返回一个数组   
 NSArray *array = [@"1,2,3,4,5,6" componentsSeparatedByString:@","];  

// 根据空格拆分

NSArray *array = [string componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];


 NSLog(@"%@",array);  
   
 // 将数组中的字符串组合成一个文件路径   
 NSMutableArray *components = [NSMutableArray array];  
 [components addObject:@"Users"];  
 [components addObject:@"CentralPerk"];  
 [components addObject:@"Desktop"];  
 NSString *path = [NSString pathWithComponents:components];  
 NSLog(@"%@",path);  //Users/CentralPerk/Desktop   
   
 // 将一个路径分割成一个数组   
 NSArray *array1 = [path pathComponents];  
 NSLog(@"%@",array1);

// 判断是否为绝对路径(依据:是否以'/'开始)   
 path = @"/Users/CentralPerk/Desktop";  
 NSLog(@"%i",[path isAbsolutePath]);  
   
 // 获取最后一个目录   
 NSLog(@"%@",[path lastPathComponent]);  
   
 // 删除最后一个目录   
 NSLog(@"%@",[path stringByDeletingLastPathComponent]);  
   
 // 拼接一个目录   
 NSLog(@"%@",[path stringByAppendingPathComponent:@"aaa"]);   //Users/CentralPerk/Desktop/aaa   
 NSLog(@"%@",[path stringByAppendingString:@"aaa"]);      //Users/CentralPerk/Desktopaaa   
 NSLog(@"%@",[path stringByAppendingFormat:@"%@%@",@"b",@"c"]);  //Users/CentralPerk/Desktopbc

8.文件扩展名

 // 拓展名出来   
 // 获取拓展名,不带.   
 NSString *str2 = @"Users/CentralPerk/Desktop/test.txt";  
 NSLog(@"%@",[str2 pathExtension]);  
 // 添加拓展名,不需要带.   
 NSLog(@"%@",[str2 stringByAppendingPathExtension:@"mp3"]);  
 // 删除拓展名,带.一块删除   
 NSLog(@"%@",[str2 stringByDeletingPathExtension]);  

9.文件操作

// 将字符串设置为path制定的文件的内容 
-(id) initWithContentsOfFile:path encoding:enc error:err  
// 创建一个新字符串并将其设置为path指定的文件的内容,使用字符编码enc,如果非零,则返回err中错误  
+(id) stringWithContentsOfFile:path encoding:enc error:err  
 

// 将字符串设置为url(NSURL *)url的内容,使用字符编码enc,如果非零,则返回err中的错误 
-(id) initWithContentsOfURL:url encoding:enc error:err   
// 创建一个新的字符串,并将其设置为url的内容,使用字符编码enc,如果非零,则返回err中的错误 
+(id) stringWithContentsOfURL:url encoding:enc error:err  

10.其他

[str1 length]   // 求字符串长度 
[str1 characterAtIndex:1]// 获取字符串中的字符 

2、NSMutableString

// 将不可变的字符串转换为可变的字符串 
NSMutableString * str =  [[NSMutableString alloc]initWithString:@"hello world"];
  
// 在指定下标为2的(不要越界)位置插入013字符串
[str insertString:@"013" atIndex:2]; 
  
// 在字符串末尾追加字符串taotao 
[str appendString:@"taotao"];
  
// 从0位置删除2个字符 
[str deleteCharactersInRange:NSMakeRange(0, 2)];
 
// 给字符串重新赋值 
[str setString:@"yintian"];

// 将3位置后1个字符替换成ios字符串
[str replaceCharactersInRange:NSMakeRange(3, 1) withString:@"ios"];

// 根据选项 opts ,使用指定 range 中的nsstring2 替换所有的 nsstring
-(void)replaceOccurrencesOfString:nsstring withString:nsstring2 options:opts range:range


 

上一篇: Android 屏蔽蓝牙连接时的首次配对系统弹窗 下一篇: 没有下一篇了!
发表评论
用户名: 匿名