OC学习笔记14--Foundation之NSString与NSMutableString常用方法

#import 
#include 
/*
	1>利用C生成一个文本文件,后再读取保存为Cstr,
	将Cstr转成OCstr后修改字符串中的内容,再利用OC字符串方法
	将新OCstr写入文件,后利用OC字符串方法读取该文件打印;
	2>利用OC字符串中方法读取网页,并计算网页中内容有多少行
*/
int main()
{
	//function declaration
	char * cTextFileOperation(char * path,char *content);
	NSString * ocTextFileOpertaion(NSString * path,
					NSString *del,NSString *append,NSString *src);
	int countWebPageLine(NSURL* url);
	
	
	char *fileName="aaa.txt";
	char *cStr=cTextFileOperation(fileName,"1>USE C LAGUAGE TO WRITE TEXT TO FILE OVER\n");
	
	printf("C读取文件内容为:\n%s\n",cStr);
	
	NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
	
	// 将Cstr转换成OCstr
	NSString * ocStr=ocTextFileOpertaion(
	[NSString stringWithUTF8String:fileName],
	@"OVER",@"2>利用NSString方法写入的字符串\n",
	[NSString stringWithUTF8String:cStr]);
		
	NSLog(@"\nNSString方式读取文件内容为:\n%@",ocStr);
	
	// OCstr转换成Cstr
	char *cStr2=[ocStr UTF8String];
	// 若系统编码方式非UTF8,中文讲打印乱码
	printf("NSString方式读取文件内容转成char *后为:\n%s\n",cStr2);
	
	//读取网页内容
	NSURL *url=[NSURL URLWithString:@"http://www.baidu.com"];
	int line=countWebPageLine(url);
	
	NSLog(@"\n%@页面内容有%d行",url,line);
	
	
	[pool drain];
	
	free(cStr);//malloc分配的内存需要手动回收
	return 0;
}

// 利用OC字符串中方法读取网页,并计算网页中内容有多少行
int countWebPageLine(NSURL* url)
{
	NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
	
	 //非使用类方法创建的需要调用autorelease
	//NSString *str=[[[NSString alloc] initWithContentsOfURL:url 
	// encoding:NSUTF8StringEncoding error:0] autorelease];
	
	NSString *str=[NSString stringWithContentsOfURL:url 
		encoding:NSUTF8StringEncoding error:0];
	 
	
	int count=0,i,len=[str length];
	//unichar为无符号双字节
	unichar uc;
	for(i=0;i



概括:
NSString为不可变字符串,即无法进行增删改操作,其子类NSMutableString为可变


NSString 常用方法:
常用的创建方法:
:为方便类的创建,OC中系统自带类的构造方法大都会有一个与之对应的类方法,
非ARC机制下,一般返回autorelease过的对象,
该类方法的命名规范为将init替换为类名去前缀;
// 按格式创建
-(id)initWithFormat:(NSString *)format ...;
+(id)stringWithFormat:(NSString *)format ...;
// 将传入的OCstr转换为另一个OCstr,一般用与将NSString转换为NSMutableString
-(id)initWithString:(NSString *)str; 
+(id)stringWithString:(NSString *)str;
//将Cstr转成OCstr字符串
-(id)initWithUTF8String:(char *) cstr; 
+(id)stringWithUTF8String:(char *)cstr;
//从文件中读取内容保存为OCstr
-(id)initWithContentsOfFile:(NSString *)path 
encoding:(NSStringEncoding)encoding error:(NSError *__autoreleasing*)error;
+(id)stringWithContentsOfFile:(NSString *)path 
encoding:(NSStringEncoding)encoding error:(NSError *__autoreleasing*)error;
//从URL中读取内容保存为OCstr
-(id)initWithContentsOfURL:(NSURL *) url
encoding:(NSStringEncoding)encoding error:(NSError *__autoreleasing*)error;
+(id)stringWithContentsOfURL:(NSURL *) url
encoding:(NSStringEncoding)encoding error:(NSError *__autoreleasing*)error;


//将OCstr转换成Cstr
- (char *)UTF8String;
// 找出subStr在字符串中的位置,没找到返回NSRange中
//location=NSNotFound(即-1),length=0
-(NSRange)rangeOfString:(NSString *)subStr;
//将OCstr写到文件,atomically表示写入过程出问题是否撤销已经写入的内容
-(BOOL)writeToFile:(NSString *)path atomically:(BOOL)b
encoding:(NSStringEncoding)encoding error:(NSError *__autoreleasing*)error;
//将OCstr写到URL
-(BOOL)writeToURL:(NSURL *)url atomically:(BOOL)b
encoding:(NSStringEncoding)encoding error:(NSError *__autoreleasing*)error;
// 在一字符串末尾拼接字符串,返回拼接后的新字符串,原字符串不变
-(NSString *)stringByAppendingString:(NSString *)append;
//返回字符串中字符数
-(unsigned int)length ;
//返回字符串中下标为i的Unicode字符 (unichar 为无符号两字节)
-(unichar) characterAtIndex:i; 
// 截取从字符串下标i开始到字符串结束的新字符串后返回
-(NSString *)substringFromIndex:i; 
//  截取从字符串开始位置到下标i位置的新字符串后返回
-(NSString *)substringToIndex:i; 




NSMutableString 常用方法:
// 在字符串末尾拼接字符串,原字符扩展为拼接后的字符串
- (void)appendString:(NSString *)append;
// 在字符串末尾拼接格式字符串
-(void)appendFormat:(NSString *)format ...;
// 删除字符串中某范围的字符串
-(void)deleteCharactersInRange:(NSRange)range;






编码方式枚举:NSStringEncoding
typedef enum _NSStringEncoding{
..,NSUTF8StringEncoding,.......
} NSStringEncoding;




URL:
格式:  
协议头://路径
例:
本地文件  file://path
ftp文件   ftp://path
网络文件  http://path 
创建方法:
NSURL *url1=[[NSURL alloc] initWithString:@"file:///home/XX"];
NSURL *url2=[NSURL URLWithString:@"file:///home/XX"];




你可能感兴趣的:(note)