个人学习笔记
NSString--常用的替换符--------------
%@ NSString实例
%d,%D,%i 整数
%u,%U 无符号整数
%x 将无符号整数以十六进制小写字母显示
%X 将无符号整数以十六进制大写字母显示
%f 小数
%c 字符
%s C语言字符串
%% 显示%字符本身
NSString *str = [[NSString alloc] init];
NSString *str = [[[NSString alloc] init] autorelease];
注意:在NSString 中存在自己的实例化和初始化的方法 例如:
NSString *str1 = [NSStringstringWithCString:"new String"encoding:NSASCIIStringEncoding];
NSString *str2 = [[NSStringalloc]initWithCString:"new String"encoding:NSASCIIStringEncoding];
NSLog(@"str1====%x",str1);
NSLog(@"str2====%x",str2);
str1和str2两个地址是不相同的。但使用initWithString时内存地址相同。
--NSStringEncoding 中常用的字符编码----------------NSASCIIStringEncoding
NSUTF8StringEncoding
NSUnicodeStringEncoding
--使用格式创建字符串-------------
+ (id)stringWithFormat:(NSString *)format...
- (id)initWithFormat:(NSString *)format...
例如:
NSString *str = @"hello";
NSString *string = [NSStringstringWithFormat:@"%@ world",str];
NSLog(@"string===%@",string);
NSRange
--NSRange的定义
typedef struct _NSRange
{
unsigned int location;
unsigned int length;
}NSRange;
字符串连接,插入和删除
1、连接
- (NSString *)stringByAppendingString:(NSString *)string;
- (NSString *)stringByAppendingFormat:(NSString *)format...; //格式化连接字符串
-----------------
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
+ (void)insertString:(NSString *)string atIndex:(unsigned)index; //从index位置插入字符串
NSMutableString *string = [NSMutableString stringWithString:@"Mac X"];
[string insertString:@"OS" atIndex:4];
NSLog(@"string==%@",string);
4、删除字符串NSMutableString
+ (void)deleteCharactersInRange:(NSRange)range;
例如:
NSMutableString *string = [NSMutableString stringWithString:@"Mac os"];
[string deleteCharactersInRange:NSMakeRanger(0,1)];
NSString
- (BOOL)isEqualToString:(NSString *)string;
6、判断前置串和后置串(判断是否以给定值开头或结尾,返回布尔值)
NSString- (BOOL)hasPrefix:(NSString *)string; //判断是否前置
- (BOOL)hasSuffix:(NSString *)string; //后置
例如:
NSString *str1 = @"Mac OS";
NSString *str2 = @"Mac Pro";
BOOL flag1 = [str1 hasPrefix:@"Mac"];
BOOL flag2 = [str2 hasSuffix:@"o"];
NSLog(@"flag1===%d",flag1);
NSLog(@"flag2===%d",flag2);
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 *str = [[NSStringalloc]initWithString:@"asdfasdfads"];
NSString *string = [strsubstringWithRange:NSMakeRange(5,2)];
NSLog(@"string ===%@",string);
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 with stringByExpandingTildeInPath before invoking this method.
----下面是网上找的例子 感谢 @chenshizero
//扩展路径
NSString *Path = @"~/NSData.txt";
NSString *absolutePath = [Path stringByExpandingTildeInPath];
NSLog(@"absolutePath:%@",absolutePath);
NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);
//文件扩展名
NSString *Path = @"~/NSData.txt";
NSLog(@"Extension:%@",[Path pathExtension]);
引用:http://keys.iteye.com/blog/1117190