Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度。
+(id) stringWithContentsOfFile:path encoding:enc error:err
创建一个新字符串并将其设置为path指定的文件的内容,使用字符编码enc,如果非零,则返回err中错误
+(id) stringWithContentsOfURL:url encoding:enc error:err
创建一个新的字符串,并将其设置为url的内容,使用字符编码enc,如果非零,则返回err中的错误
+(id) string
创建一个新的空字符串
+(id) stringWithString:nsstring
创建一个新的字符串,并将其设置为nsstring
NSString *str = @"1";
//initwithstring和stringwithtstring是不是现在不可以直接加字符串,而是必须加字符串的名字?
NSString *str2 = [NSString stringWithString:str];
-(id)initWithString:nsstring
将分配的字符串设置为nsstring
NSString *str = @"1";
NSString *str1 = [[NSString alloc] initWithString:str];
-(id) initWithContentsOfFile:path encoding:enc error:err
将字符串设置为path制定的文件的内容
-(id) initWithContentsOfURL:url encoding:enc error:err
将字符串设置为url(NSURL *)url的内容,使用字符编码enc,如果非零,则返回err中的错误
-(id) (UNSIgned int)length
返回字符串中的字符数目
[str length];字符串长度
-(unichar)characterAtIndex:i ???????
返回索引i的Unicode字符
-(NSString *)substringFromIndex:i
返回从i开始知道结尾的子字符串
-(NSString *)substringWithRange:range
根据指定范围返回子字符串
-(NSString *)substringToIndex:i
返回从该字符串开始到索i的子字符串
-(NSComparator *)caseInsensitiveCompare:nsstring
比较两个字符串,忽略大小写
-(NSComparator *)compare:nsstring
比较两个字符串
-(BOOL)hasPrefix:nsstring // prefix为前缀的意思
测试字符串是否以nsstring开始
-(BOOL)hasSuffix:nsstring // suffix为后缀 下标的意思
测试字符串是否以nsstrng结尾
-(BOOL)isEqualToString:nsstring ???????与isEqual 有什么区别?
测试两个字符串是否相等
-(NSString *) capitalizedString
返回每个单词首字母大写的字符串(每个单词的其余字母转换为小写)
-(NSString *)lowercaseString
返回转换为小写的字符串
-(NSString *)uppercaseString
返回转换为大写的字符串
-(const char*)UTF8String
返回转换为UIF-8字符串的字符串
-(double)doubleValue
返回转换为double的字符串
-(float)floatValue
返回转换为浮点值的字符串
-(NSInteger)integerValue
返回转换为NSInteger整数的字符串
-(int)intValue
返回转换为整数的字符串
NSMutableString方法
NSMutableString类可以用来创建可以更改字符的字符串对句.因为是NSString的子类,所以可以使用NSString类的所有方法.
+(id) stringWithCapacity:size
创建一个字符串,初始包含size的字符
-(id) initWithCapacity:size
使用初始容量为size的字符串来初始化字符串
-(void) setString:nsstring
将字符串设置为nsstring
-(void) appendString:nsstring
在接收者的末尾附加nsstring
-(void) deleteCharactersInRange:range
删除指定range中的字符
-(void) insertString:nsstring atIndex:i
以索引i为起始位置插入nsstring
-(void) replaceCharactersInRange:range withString:nsstring
使用nsstring替换range指定的字符
-(void) replaceOccurrencesOfString:nsstring withString:nsstring2 options:opts range:range
根据选项opts。使用指定range中的nsstring2替换所有的nsstring。选项可以包括NSBackwardsSearch(从范围的结尾 开始搜索)NSAnchoredSearch(nsstring必须匹配范围的开始),NSLiteralSearch(执行逐字节比较以及 NSCaceInsensitiveSearch的按位或组合
实例:
1、NSString *Beijing= @"北京欢迎您"; //字符串的声明
2、NSString *log=@"北京欢迎您a"; //[NSString stringWithFormat:@"I am '%@'",Beijing]; //字符串格式化
3、NSString *zhui = [Beijing stringByAppendingString:@"哈哈哈"]; //字符串追加
4、bool b=[Beijing isEqualToString:log]; //字符串比较
5、NSString *hh = @"http://www.sina.com.cn";
if([hh hasPrefix:@"http"]){ //查找以http开头的字符串
NSLog(@"含有http");
}else{
NSLog(@"没有http");
}
6、 NSString *ss = @"123";
int a = [ss intValue]+13; //字符串转int型
double dd = [ss doubleValue]+33.3; //字符串转double型
NSLog(@"%g",dd);
7、字符串转数组
NSString *zifuchuan =@"one,two,three,four";
NSLog(@"string:%@",zifuchuan);
NSArray *array = [zifuchuan componentsSeparatedByString:@","];
// NSLog(@"array:%@",array); //输出整个数组中所有元素
NSString *value = [array objectAtIndex:0]; //取出第0个元素
NSLog(@"value:%@",value);
8、//数组转字符串
NSString * zifuchuan2 = [array componentsJoinedByString:@","];
NSLog(@"zifuchuan2:%@",zifuchuan2);
结果:zifuchuan2:one,two,three,four
9、-substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符
NSString *string1 = @"This is a string";
NSString *string2 = [string1 substringToIndex:3];
NSLog(@"string2:%@",string2);
NSString *string1 = @"This is a string";
NSString *string2 = [string1 substringFromIndex:3];
NSLog(@"string2:%@",string2);
NSString *string1 = @"This is a string";
NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)];
NSLog(@"string2:%@",string2);
结果:string2:This
//去除字符串中用括号括住的位置
-(NSString *)handleStringWithString:(NSString *)str{
NSMutableString * muStr = [NSMutableString stringWithString:str];
while (1) {
NSRange range = [muStr rangeOfString:@"("];
NSRange range1 = [muStr rangeOfString:@")"];
if (range.location != NSNotFound) {
NSInteger loc = range.location;
NSInteger len = range1.location - range.location;
[muStr deleteCharactersInRange:NSMakeRange(loc, len + 1)];
}else{
break;
}
}
return muStr;
}
NSMutableString *mstr = [[NSMutableString alloc] init];实例话一个可变字符串;
NSString *str1 = @"This is a example.";
//创建可变字符串
mstr = [NSMutableString stringWithString:str1];
//插入字符
[mstr insertString:@"very easy " atIndex:10];
NSRange substr = [mstr rangeOfString:@"example"]; //字符串查找,可以判断字符串中是否有
if (substr.location != NSNotFound) {
[mstr deleteCharactersInRange:substr];
}
//重新设置字符串
[mstr setString:@"This is string AAA"];
//替换字符串
[mstr replaceCharactersInRange:NSMakeRange(15, 2) withString:@"BBB"]; //从第15个字符串处替换掉后2个字符串
结果:2015-08-19 16:54:14.757 Demo[94216:4715472] This is string BBBA
NSString *search = @"This is";
NSString *replace = @"An example of";
substr = [mstr rangeOfString:search];// substr类型为nsrange;
if (substr.location != NSNotFound) {
[mstr replaceCharactersInRange:substr withString:replace]; //把第1个遇到的substr替换为replace
NSLog(@"%@",mstr);
}
//rangeOfString 前面的参数是要被搜索的字符串,后面的是要搜索的字符
//NSNotFound 表示请求操作的某个内容或者item没有发现,或者不存在
//查找全部匹配的,并替换
search = @"a";
replace = @"X";
substr = [mstr rangeOfString:search];
while (substr.location != NSNotFound) {
[mstr replaceCharactersInRange:substr withString:replace];
substr = [mstr rangeOfString:search];
}
NSLog(@"%@",mstr);
来源:https://www.cnblogs.com/wangliyuan/p/4742847.html