NSString创建字符串
NSString 的string WithFormat:方法 是通过格式字符串和参数来创建的。 原形 +(id)string WithFormat:(NSString*)format;
创建字符串的三种方式:
NSString *str=@"中国人,my";//现在常用的方法
NSLog(@"%@",str);
NSString *string1=[NSString stringWithFormat:@"Your height is %ifeet,%i inches",5,11];//这个方法可以加格式控制符之类的。如%i ,很重要的。
NSLog(@"%@",string1);
NSString *str2=[NSString stringWithString:@"Your height is 5 feet,11 inches"];//这是要淘汰的方法。等效于第1种方法。
NSLog(@"%@",str2);
字符串长度 length
它返回字符串的字符个数。
NSLog(@"%lu",[str length]);
NSLog(@"%lu",[string1 length]);
NSLog(@"%lu",[str2 length]);
//也可以在表达式中使用它。
if ([str length]>35)
{
NSLog(@"hehe");
}
字符串比较
isEqualToString:表示两个字符串的内容是否相同。可以用来比较接收方(接收消息的对象)和当作参数传递来的字符串。isEqualToSting:返回一个BOOL(YES或NO),型数据来表示两个字符串的内容是否相同。
原形: -(BOOL) isEqualToString:(NSString*)astring;
ISEqualTOstring判断两个字符串是否相等,返回BOOL类型。
NSString *str3=@"hello 5";
NSString *str4=[NSString stringWithFormat:@"hello %i",5];
if ([str3 isEqualToString:str4])//判断两个字符串是否相等。
{
NSLog(@"They are the same!");
}
--------------------------------------------------------------------------------------------
要比较两个字符串,可以使用compare:方法:-(NSComparisonResult) compare:(NSString*)string;
compare等效于c的strcmp字符串比较大小。返回的NSComparisonResult型数据
NSOrderedAscending :左侧字符串小于右侧字符串
NSOrderedSame :左侧字符串等于右侧字符串
NSOrderedDescending:左侧字符串大于右侧字符串。
NSString *thing1=@"abc";
NSString *thing2=@"abd";
if ([thing1 compare:thing2]==NSOrderedAscending )//NSOrderedAscending :左侧字符串小于右侧字符串
{
NSLog(@"thing1<thing2");
}
if ([thing1 compare:thing2]==NSOrderedSame)//NSOrderedSame :左侧字符串等于右侧字符串
{
NSLog(@"thing1=thing2");
}
if ([thing1 compare:thing2]==NSOrderedDescending)//NSOrderedDescending:左侧字符串大于右侧字符串。
{
NSLog(@"thing1>tihing2");
}
compare:options:方法。options是个条件,
-(NSComparisonResult) compare:(NSString*)string options:(unsigned)mask;
options参数是一个位掩码,可以使用位运算符(|)来添加选项标记。
NSCaseInsensitiveSearch //不区分大小写
NSLiteralSearch //区分大小写。
NSNumericSearch //数值比较。
NSString *th1=@"abc";
NSString *th2=@"abC";
if ([th1compare:th2options:NSCaseInsensitiveSearch|NSNumericSearch]==NSOrderedSame)
{
NSLog(@"They match!");
}
字符串的查找
prefix:前缀,suffix:后缀。
hasPrefix:检查字符串是否有另一个字符串开头,
hasSuffix:检查字符串是否有另一个字符串结尾。
NSString *filename=@"draft-chapter.mov";//判断前缀是否有 draft头用的很少。
if ([filename hasPrefix:@"draft"])
{
NSLog(@"draft is prefix");
}
if ([filename hasSuffix:@".mov"])//判断后缀是否有.mov 尾经常使用的。
{
NSLog(@".mov is suffix");
}
rangeOfString,判断中间是否有。
-(NSRange)rangeOfString:(NSString*)astring 返回的是结构体变量。
NSString *filename1=@"draft-chapter.pages";
NSRange range5;
range5=[filename1 rangeOfString:@"chapter"];
NSLog(@"%lu ,%lu",range5.location,range5.length);
小写改大写 uppercaseString
NSString *res;
res=[filename uppercaseString];//小写改大写。
NSLog(@"%s",[res UTF8String]);
大写改小写lowercaseString;
NSString *xiaoxie;
xiaoxie=[res lowercaseString];//大写改为小写
NSLog(@"%@",[xiaoxie lowercaseString]);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NSString是常量不可改变的。
mutable可变的 capacity容量的。
NSMutableString是nsstring的字类。
NSMutableString是用来创建可变字符串。
+(id)stringWithCapacity:(unsigned) capacity;
这个容量只是给NSMutableString的一个建议,字符串的大小并不仅限于所提供的容量,这个容量仅是个最优值。
附加字符串
appendString:接收参数,然后将其复制到接收对象的末尾。
appendFormat:的工作方式与stringWithFormat:类似,但它将格式化的字符串附加到接收字符串的末尾,而不是创建新字符串对象。
-(void)appendStrin:(NSString*)aStrin;//普通添加。
-(void)appendFormat:(NSString*)aStrin; //带格式控制字符串的方式。
NSMutableString *string2;
string2=[NSMutableString stringWithCapacity:50];
[string2 appendString:@"Hello there "];//普通附加
NSLog(@"%@",string2);
[string2 appendFormat:@"human %d",39];//用带格式控制字符串的方式。
NSLog(@"%@",string2);
插入字符串
-(void)insertString:(NSString*)aString atIndex:(NSUInteger)loc;
//第一个参数是要插入的字符串,第二个参数是要插入的位置
[string2insertString:@"world "atIndex:6];
NSLog(@"%@",string2);
-(void)replaceCharacterInRange:(NSRange) withString:(NSString*)aString;
NSRange range6=[string2 rangeOfString:@"human"];//查找human在字符串中的范围。
[string2 replaceCharactersInRange:range6 withString:@"are"];//替换字符串。
NSLog(@"%@",string2);
删除字符串
NSRange range7=[string2 rangeOfString:@"Hello"];
[string2 deleteCharactersInRange:range7];
NSLog(@"%@",string2);
//删除指定位置。
NSRange range8= NSMakeRange(3,2);
[string2 deleteCharactersInRange:range8];
NSLog(@"%@",string2);