Objective-C学习笔记(二)------NSString和NSMutableString类

创建字符串

int main(int argc,const char * argv[])
{ 
 NSString *str0 = @"my name is justcoding !";  
      
    //字符串格式化合并分别包括  
    //NSString*类型 int类型 char*类型   
    NSString *str1 = [NSString stringWithFormat:@"我的名字:%@ 我的年龄:%d 我的邮箱:%s",@"justcoding", 25,"justcoding@gmail.com"];  
      
    //字符串赋值 参数中只可以写一个字符串 和第一种很像  
    NSString *str2 = [NSString stringWithString:@"我是字符串"];  
     
    //字符串转换为utf-8格式 参数为char*类型  
    NSString *str3 = [NSString stringWithUTF8String:"字符串转换utf-8格式"];  
      
      
    //字符串合并  
    int i  = 100;  
    char*c = "xuanyusong";  
    NSString *temp = @"我是临时字符串";  
      
    //在字符串temp的基础继续添加 int i 与 char* c 组成一个新的字符串  
    NSString *str4 = [temp stringByAppendingFormat:@"整型: %d 字符型 :%s",i,c];  
      
    //在字符串temp的基础继续添加temp 并组成一个新的字符串  
    NSString *str5 = [temp stringByAppendingString:temp];   
      
    //字符串输出  
    NSLog(@"str0 = %@", str0);  
    NSLog(@"str1 = %@", str1);  
    NSLog(@"str2 = %@", str2);  
    NSLog(@"str3 = %@", str3);  
    NSLog(@"str4 = %@", str4);  
    NSLog(@"str5 = %@", str5);  


}
遍历字符串

int main(int argc,const char * argv[])
{
//经典的字符串赋值  
    NSString *str = @"YUSONGMOMO";  
      
    //字符串的长度  
    int count = [str length];  
      
    NSLog(@"字符串的长度是%d",count);  
      
    //遍历字符串中的每一个字符  
    for(int i =0; i < count; i++)  
    {  
        char c = [str characterAtIndex:i];  
        NSLog(@"字符串第 %d 位为 %c",i,c);  
    }  
}
字符串比较
int main(int argc,const char * argv[])
{
 NSString *str0 = @"justcoding"; NSString *str1 = @"justcoding"; //字符串完全相等比较 if([str0 isEqualToString:str1]) { NSLog(@"字符串完全相等"); } //字符串以开头比较 if([str0 hasPrefix:@"just"]) { NSLog(@"字符串str0以just开头"); } //字符串以结尾比较 if([str1 hasSuffix:@"coding"]) { NSLog(@"str1字符串以coding结尾"); } }
改变大小写
//改变字符串的大小写  
NSString *string1 = @"A String";  
NSString *string2 = @"String";  
NSLog(@"string1:%@",[string1 uppercaseString]);//大写  
NSLog(@"string2:%@",[string2 lowercaseString]);//小写  
NSLog(@"string2:%@",[string2 capitalizedString]);//首字母大小
截取字符串
int main(int argc, const char * argv[])
{
    NSString *str0 = @"中文my name is xuanyusong";
    
    //截取字符串起始点到index为4之间的内容
    NSString * to = [str0 substringToIndex:4];
    
    NSLog(@"to = %@",to);
    
    //截取字符index为2 到结尾之间的内容
    NSString * from = [str0 substringFromIndex:2];
    
    NSLog(@"from = %@",from);
    
    
    //设置截取字符串的范围
    //从第二位开始,长度为十
    NSRange rang = NSMakeRange(2, 10);
    NSString * strRang = [str0 substringWithRange:rang];
    NSLog(@"rang = %@",strRang);
    
    //设置字符串首字母大写
    NSLog(@"str0首字母大写:%@",[str0 capitalizedString]);
    //设置字符串全部内容为大写
    NSLog(@"str0大写:%@",[str0 uppercaseString]);
    //设置字符全部内容为小写
    NSLog(@"str0小写:%@",[str0 lowercaseString]);
}


NSString方法
+(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
-(id)initWithString:nsstring
将分配的字符串设置为nsstring
-(id) initWithContentsOfFile:path encoding:enc error:err
将字符串设置为path制定的文件的内容
-(id) initWithContentsOfURL:url encoding:enc error:err
将字符串设置为url(NSURL *)url的内容,使用字符编码enc,如果非零,则返回err中的错误
-(id) (UNSIgned int)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
测试字符串是否以nsstring开始
-(BOOL)hasSuffix:nsstring
测试字符串是否以nsstrng结尾
-(BOOL)isEqualToString:nsstring
测试两个字符串是否相等
-(NSString *) capitalizedString
返回每个单词首字母大写的字符串(每个单词的其余字母转换为小写)
-(NSString *)lowercaseString
返回转换为小写的字符串
-(NSString *)uppercaseString
返回转换为大写的字符串
-(const char*)UTF8String
返回转换为UIF-8字符串的字符串
-(double)doubleValue
返回转换为double的字符串
-(float)floatValue
返回转换为浮点值的字符串
-(NSInteger)integerValue
返回转换为NSInteger整数的字符串
-(int)intValue
返回转换为整数的字符串




NSMutableString方法
+(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) replaceOccurrencesOf
String:nsstring withString:
nsstring2 options:opts range:range
根据选项opts。使用指定range中 的nsstring2替换所有的nsstring。选项可以包括NSBackwardsSearch(从范围的结尾开始搜 索)NSAnchoredSearch(nsstring必须匹配范围的开始),NSLiteralSearch(执行逐字节比较以及 NSCaceInsensitiveSearch的按位或组合)






NSMutableString  
[aString substringToIndex:([aString length]-1)];//字符串删除最后一个字符
//字符串删除最后一个字符
 NSRange range = {0,1};
 [aStr deleteCharactersInRange:range];


NSString是不可变的,意思是他声明的对象我们不可以改变,如果要改变,可以使用它的子类:NSMutableString
 
你可以使用类方法:stringWithCapacity来创建一个新的NSMutableString,声明如下:
 
*  (id) stringWithCapacity: (unsigned) capacity:
 
可按如下方法声明一个新的可变字符串:
NSString *str1;
Str1 = [NSMutableString stringWithCapacity:42];
 
可以使用appendString或appendFormat来对可变字符串操作:
  - (void)appendString: (Nsstring *) aString;
  -  (void) appendFormat: (NSString *) Format;
 
appendString 接受参数aString,然后将其复制到接受对象的末尾。
appendFormat类似,他将格式化的字符串附加在接受对象的末尾,而不是创建新的对象。
 
EXP:
NSMutableString *string;
string = [NSMutableString stringWithcapacity:50];
[string appendString: @”hello,there”];
[string appendFormat: @”human %d!”, 39];
 这段代码的string最后被赋值为:hello,there human 39!
 
你还可以使用deleteCharactersInRange:方法来删除字符串中的字符:
- (void) deleteCharactersInRange: (NSRange) range;
 
通常将deleteCharactersInRange: 和rangeOfString:连在一起使用,NSMutableString可以使用NSString的全部功能,包括rangeOfString:、字符串比较和其他任何功能。
 
例如,你列了一个所有朋友列表,你突然又不喜欢Jack了,想把他从朋友列表里删除:
 
//朋友列表初始化
NSMutableString *friends;
friends = [NSMutableString stringWithcapacity: 50];
[friends appendString: @”level fang jack even”];
 
//找到jack并且删除
NSRange jackRange;
jackRange = [friends rangeOfString: @”jack”];
jackRange.length++; //eat the space that follows
[friends deleteCharactersInRange: jackRange];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值