NSString的常用方法

本文详细介绍了NSString类的各种常用方法,包括字符串的创建、拼接、替换、检索、比较及文件读写等操作,并提供了丰富的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NSString的常用方法

创建一个新字符串并将其设置为 url 指定的内容,使用字符编码enc,在error上返回错误

+ (id)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error;

 

- (NSString *)stringByAppendingString:(NSString *)aString;


创建一个新字符串并将其设置为 path 指定的文件的内容,使用字符编码enc,在error上返回错误

+ (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;

 

创建一个新的空字符串

+(id)string

 

创建一个新的字符串,并将其内容设置为string的内容

+ (id)stringWithString:(NSString *)string;

 

将新分配的字符串设置为astring的内容

- (id)initWithString:(NSString *)aString;

 

将字符串设置为path指定的文件的内容 使用字符编码enc,在error上返回错误

- (id)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;

 

将字符串设置为path指定的文件的内容 使用字符编码enc,在error上返回错误

- (id)initWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error;

返回字符串中的字符数目

- (NSUInteger)length; 

 

返回索引(某个值,比如i)所在的Unicode字符      
- (unichar)characterAtIndex:(NSUInteger)index;

 

返回从(?)开始到结尾的子字符串

- (NSString *)substringFromIndex:(NSUInteger)from;

 

返回从字符串开始的位置到(?)的子字符串
- (NSString *)substringToIndex:(NSUInteger)to;

 

根据指定范围返回子字符串
- (NSString *)substringWithRange:(NSRange)range;

 

比较两个字符串 (忽略大小写)

- (NSComparisonResult)caseInsensitiveCompare:(NSString *)string;

 

比较两个字符串

- (NSComparisonResult)localizedCompare:(NSString *)string;

 

测试字符串是否以aString开始

- (BOOL)hasPrefix:(NSString *)aString;

 

测试字符串是否以aString结尾

- (BOOL)hasSuffix:(NSString *)aString;

 

测试两个字符串是否相等

- (BOOL)isEqualToString:(NSString *)aString;

 

返回字符串 串中的每个单词的首字母大写,其余字母小写

- (NSString *)capitalizedString;

 

返回转换为小写的字符串

- (NSString *)lowercaseString;

 

返回转换为大写的字符串

- (NSString *)uppercaseString;

 

返回转换为UTF8编码格式的字符串

- (__strong const char *)UTF8String;

 

返回转换double类型的字符串

- (double)doubleValue;

 

返回转换float类型的字符串

- (float)floatValue;

 

返回转换int类型的字符串

- (int)intValue;

 

返回转换为NSInteger类型的字符串

- (NSInteger)integerValue

NSString 

--实例化方法-------------- 
NSString *str = [[NSString alloc] init]; 
NSString *str = [[[NSString alloc] init] autorelease];   

注意:在NSString 中存在自己的实例化和初始化的方法 例如: 
NSString *str1 = [NSString stringWithCString:"new String" enconding: NSACIIStringEncoding]; 
NSString *str2 = [NSString alloc] initWithCString:"new String" enconding: NSACIIStringEncoding]; 
str1和str2两个对象是相同的。 

--NSStringEncoding 中常用的字符编码---------------- 
     NSASCIIStringEncoding 
     NSUTF8StringEncoding 
     NSUnicodeStringEncoding 

--NSString创建实例---------------- 
带“@”符号的方法只能定义含有英文和数字的NSString实例,例如: 
NSString *str = "Hello money~"; 
--生成含有中文的NSString方法------------- 
//此方法自动释放内存 
+ (id)stringWithCString:(const char*)cString encoding:(NSStringEncoding)encoding; 
//进行alloc后进行初始化 
- (id)initWithCString:(const char*)cString encoding:(NSStringEncoding)encoding; 
例如: 
NSString *string = [NSString stringWithCString:"您好" encoding:NSUTF8StringEncoding]; 
NSString *string = [[NSString alloc] initWithCString:"您好" encoding:NSUTF8StringEncoding]; 

--使用格式创建字符串------------- 
+ (id)stringWithFormat:(NSString *)format... 
- (id)initWithFormat:(NSString *)format... 
例如: 
NSString *str = "hello"; 
NSString *string = [NSString stringWithFormat:@"%@ world",str]; 
NSLog(string); 结果:hello world 
--常用的替换符-------------- 
%@ NSString实例 
%d,%D,%i 整数 
%u,%U 无符号整数 
%x 将无符号整数以十六进制小写字母显示 
%X 将无符号整数以十六进制大写字母显示 
%f 小数 
%c 字符 
%s C语言字符串 
%% 显示%字符本身 

-------------------------- 
NSRange 

--NSRange的定义 
typedef struct _NSRange 

     unsigned int location; 
     unsigned int length; 
}NSRange; 

NSMakeRange函数 
--这个函数比较特殊 返回一个NSRange的对象。 
NSMakeRanger(unsigned int location,unsigned int length); 
例如: 
NSRange range = NSMakeRanger(0,5); 
NSLog(@"location is %d,length is %d",range.location,range.length); 

--------------------------- 
计算字符串长度 
- (unsigned int)length; 

--------------------------- 
字符串连接,插入和删除 
1、连接 
- (NSString *)stringByAppendingString:(NSString *)string; 
- (NSString *)stringByAppendingFormat:(NSString *)format...; 
例如: 
     NSString *str1 = @"hello"; 
     NSString *str2 = @"world"; 
     NSString *str3 = [str1 stringByAppendingString:str2]; 
     NSString *str4 = [str2 stringByAppendingFormat:@"%d...%d",10,20]; 
     str4 --> world 10...20 
    
     ----------------- 
     NSMutableString的生成 
     NSString   + (id)string;  //生成空字符串的实例 
     + (id)stringWithString:(NSString *)string;     //带自动释放内存 
     - (id)initWithString:(NSString *)string; 
     例如: 
     NSMutableString *string = [NSMutableString stringWithString:@"hello"]; 
2、追加字符串 
     NSMutableString 
     + (void)appendString:(NSString *)string; 
     - (void)appendFormat:(NSString *)format...; 
     例如: 
     NSMutableString string = [NSMutableString string]; 
     [string appendString:@"hello"]; 
     [string appendString:@"money"]; 
     [string appendString:@" and world"]; 
3、插入字符串 
     NSMutableString 
     + (void)insertString:(NSString *)string atIndex:(unsigned)index; 
     从index位置插入字符串 
     例如: 
     NSMutableString *string = [NSMutableString stringWithString:@"Mac X"]; 
     [string insertString:@"OS" atIndex:4]; 
     string --> Mac OS X 
4、删除字符串 
     NSMutableString 
     + (void)deleteCharactersInRange:(NSRange)range; 
     例如: 
     NSMutableString *string = [NSMutableString stringWithString:@"Mac os"]; 
     [string deleteCharactersInRange:NSMakeRanger(0,1)]; 
     NSLog(string); 
     string -->ac os; 
5、字符串比较 
     NSString 
     - (BOOL)isEqualToString:(NSString *)string; 
6、比较前置串和后置串 
     NSString 
     - (BOOL)hasPrefix:(NSString *)string; 
     - (BOOL)hasSuffix:(NSString *)string; 
     例如: 
     NSString *str1 = @"Mac OS"; 
     NSString *str2 = @"Mac Pro"; 
     BOOL flag; 
     flag = [str1 hasPrefix:@"Mac"];  YES 
     flag = [str2 hasSuffix:@"OS"];      NO 
7、字符串检索 
     NSString 
     //如果找到就返回范围,否则NSRange的location项被设置为NSNotFound 
     - (NSRange)rangeOfString:(NSString *)subString; 
     - (NSRange)rangeOfString:(NSString *)subString option:(unsigned)mask; 
     - (NSRange)rangeOfString:(NSString *)subString option:(unsigned)mask      range:(NSRange)range;                                                                                        
     -----mask常用选项列表 
     NSCaseInsensitiveSearch          不区分字母大小写 
     NSLiteralSearch          对字符串进行字节单位的比较,一般可提高检索速度 
     NSBackwardsSearch     从范围的末尾开始检索 
     NSAnchoredSearch     仅检索制定范围的前部。忽略字符串中间的检索字符 
     例如: 
     NSString *string = @"hello world"; 
     NSRange range = [string rangeOfString:@"he"]; 
     if(range.location != NSNotFound) 
     { 
          NSLog(@" location=%d,length=%d",range.location,range.length); 
     } 
8、截取字符串 
     NSString 
     - (NSString *)substringToIndex:(unsigned)index;     //返回字符串开头至index位的字符串 不包含索引位 
     - (NSString *)substringFromIndex:(unsigned)index; //返回字符串第index位至末尾的字符串 包含索引位 
     - (NSString *)substringWithRange:(NSRange)range;     //返回字符串中范围range内的字符串 包含索引位 
     例如: 
     NSString *string = [string substringWithRange:NSMakeRange(5,2)]; 
9、读取文本文件 
     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){} 
10、输出文本文件 
     NSString 
     - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error 
     //参数 atomically 暂时将文件保存到辅助文件中 
     //path 
     The file to which to write the receiver. If path contains a tilde (~) character, you must expand it withstringByExpandingTildeInPath before invoking this method. 
    ----下面是网上找的例子 感谢 @chenshizero 
    //扩展路径 
    NSString *Path = @"~/NSData.txt"; 

//stringByexpandingtildeInpath 将路径中的代字符扩展成用户主目录(~)或指定用户的主目录(~user)
    NSString *absolutePath = [Path stringByExpandingTildeInPath]; 
    NSLog(@"absolutePath:%@",absolutePath); 
    NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]); 

//输出内容

2016-07-29 11:42:49.612 path[1012:39461] absolutePath:/Users/mac/NSData.txt

2016-07-29 11:42:49.613 path[1012:39461] Path:~/NSData.txt


    //文件扩展名 
    NSString *Path = @"~/NSData.txt"; 
    NSLog(@"Extension:%@",[Path pathExtension]); 



cankao的文章url:http://www.cnblogs.com/daguo/archive/2013/02/19/2916771.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值