Object-C结构:NSString学习

NSString

创建常量字符串

以下字符串输出函数均为:

NSLog("字符串如下:%@", astring);

/*初始化空字符串,并赋值*/
NSString *astring = [[NSString alloc] init];
astring = @"This is a String!";

/*函数式创建*/
NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];

/*快速创建*/
NSString *astring = @"This is a String!";

/*占位符创建*/
char * i = "haha"; 
int j = 2;
NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%s.This is %i string!",i,j]];

不过,不建议使用以下两种方法:

char *Cstring = "This is a String!";

/*不建议使用以下两种方式,第一种已废弃. 第二种有快捷创建方式*/
NSString *astring = [[NSString alloc] initWithCString:Cstring];
NSString *astring2 = [[NSString alloc] initWithString:@"This is a String!"];

⼤小写处理⽅方法

uppercaseString / lowercaseString / capitalizedString

NSString * string = @"i'm A Student!";
NSLog(@"string1:%@",[string uppercaseString]);//大写
    
NSLog(@"string2:%@",[string lowercaseString]);//小写
    
NSLog(@"string3:%@",[string capitalizedString]);//首字母大小

NSString⽐较⼤⼩

isEqualToString / compare

isEqualToString:是否相等

NSString *astring01 = @"This is a String!";
NSString *astring02 = @"This is a String!";
/*相同为 true (1),不同为 false (0)*/
BOOL result = [astring01 isEqualToString:astring02];
NSLog(@"result:%d",result);

compare:比较大小
返回值:

NSOrderedAscending = -1,

NSOrderedSame,

NSOrderedDescending

NSString *astring01 = @"This is a String!";
NSString *astring02 = @"This is a String!";    
BOOL result = [astring01 compare:astring02] == NSOrderedSame;    //NSOrderedSame判断两者内容是否相同
 
NSLog(@"result:%d",result);    
 


//NSOrderedAscending判断两对象值的大小(按字母顺序进行比较,astring02大于astring01为真)
result = [astring01 compare:astring02] == NSOrderedAscending;

 
NSLog(@"result:%d",result);

 
result = [astring01 compare:astring02] == NSOrderedDescending;    //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,astring02小于astring01为真)
NSLog(@"result:%d",result); 

/*附加条件*/
//1.caseInsensitiveCompare :无视大小写:
BOOL result = [astring01 caseInsensitiveCompare:astring02] == NSOrderedSame;    //(按字母顺序进行比较,astring02小于astring01为真)
 
 //2.附加参数
 BOOL result = [astring01 compare:astring02
                  options:NSCaseInsensitiveSearch | NSNumericSearch]
                 == NSOrderedSame;   
//NSCaseInsensitiveSearch:不区分大小写比较 NSLiteralSearch:进行完全比较,区分大小写 NSNumericSearch:比较字符串的字符个数,而不是字符值。

字符串替换和截取

截取

  • substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符:
NSString *string2 = [string1 substringToIndex:3];
  • substringFromIndex: 以指定位置开始(包括指定位置的字符),并包括之后的全部字符:
NSString *string2 = [string1 substringFromIndex:3];
  • substringWithRange: //按照所给出的位置,长度,任意地从字符串中截取子串:
NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)]; ```

**查找**

- hasPrefix: //检查字符串是否以另一个字符串开头:<br>

[String1 hasPrefix:@"NSString"] = = 1 ? NSLog(@"YES") : NSLog(@"NO");
```

  • rangeOfString: //查找字符串某处是否包含其它字符串
NSRange range = [string1 rangeOfString:string2];
NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"Location:%i,Leight:%i",location,leight]];

付加

  • 在字符串temp的基础继续添加 int i 与 char* c 组成一个新的字符串
  NSString *str4 = [temp stringByAppendingFormat:@"整型: %d 字符型 :%s",123,@"hahaha"]; 

替换

  • 将搜索中的字符串替换成为一个新的字符串
NSString *str = [str0 stringByReplacingCharactersInRange:rang withString:@"hahaah"];
  • 将字符串中" " 全部替换成 @
str = [str0 stringByReplacingOccurrencesOfString :@" " withString:@"@"];   

文件操作

从文件创建字符串

NSString *path = [[NSBundlemainBundle] pathForResource:@"astring.text" ofType:nil];
NSString *astring = [[NSString alloc] initWithContentsOfFile:path];
NSLog(@"astring:%@",astring);

写入到文件

NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];
NSLog(@"astring:%@",astring);
NSString *path = @"astring.text";    
[astring writeToFile: path atomically: YES];//原子性写入

附录

NSString 常用方法总结

+(id)stringWithContentsOfFile:path encoding:enc err 创建一个新字符串并将其设置为 path 指定文件的内容,使用字符编码 enc,在err 上返回错误 +(id)stringWithContentsOfURL:url encoding:enc err 创建一个新字符串并将其设置为 url 所指向的内容,使用字符编码 enc,在err 上返回错误 +(id)string 创建一个新的空字符串 +(id)stringWithString:nsstring 创建一个新字符串,将其内容设置为 nsstring 内容 -(id)initWithString:nsstring 将字符串内容设置为 nsstring 内容 -(id)initWithContentsOfFile:path encoding:enc error:err 将字符串设置为 path 指定文件的内容,使用字符编码 enc,在err 上返回错误 -(id)initWithContentsOfURL:url encoding:enc error:err 将字符串设置为 url 所指向的内容,使用字符编码 enc,在err 上返回错误 -(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 测试字符串是否以 nsstring 结尾 -(BOOL)isEqualToString:nsstring 测试两个字符串是否相等 -(NSString*)capitalizedString 返回字符串,串中的每个单词的首字母大写,其余字母小写 -(NSString*)lowercaseString 返回转换为小写的字符串 -(NSString*)uppercaseString 返回转换为大写的字符串 -(const char*)UTF8String 返回UTF8编码格式的字符串 -(double)doubleValue 返回转换为double 类型的字符串 -(float)floatValue 返回转换为 float 类型的字符串 -(NSInteger)integerValue 返回转换为 NSInteger 类型的新字符串 -(int)intvalue 返回转换为 int 的字符串 NSMutableString 可修改字符串常用方法 +(id)stringWithCapacity:size 创建一个字符串,容量为size大小 -(id)initWithCapacity:size 初始化一个字符串,容量为size -(void)setString:nsstring 将字符串设置为 nsstring -(void)appendString:nsstring 在字符串末尾追加字符串 nsstring -(void)deleteCharatersInRange:range 删除指定range 中的字符 -(void)insertString:nsstring atIndex:i 以索引 i 为起始位置插入 nsstring -(void)replaceCharatersInRange;range withString:nsstring 使用 nsstring 替换 range 指定的字符 -(void)replaceOccurrencesOfString:nsstring withString:nsstring2 options:opts range:range 根据选项 opts ,使用指定 range 中的nsstring2 替换所有的 nsstring

转载于:https://www.cnblogs.com/Orange-W/p/4629034.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值