创建字符串
NSString 的stringWithFormat:方法就是这样通过格式字符串和参数来创建的
+(id)stringWithFormat:(NSString *)format,...;
eg:NSString *height;
height = [NSString stringWithFormat:@"your height is %d feet,%d inches",5,11];
得到的字符串是“your height is 5 feet,11 inches”
如果你在声明方法时添加了加号,就是把这个方法定义为类方法,这属于类对象,通常用于创建新的实例,我们称这种用来创建新对象的类方法的工厂方法。
stringWithFormat:就是一个工厂方法,可以根据你提供的参数创建新对象,用stringWithFormat来创建字符串比创建空字符串然后生成所有元素要容易很多。
关于大小
NSString 的另一个好用的方法(实例方法)是length ,它返回的是字符串中的字符个数。
-(NSString)length 也可以这样使用:NSString length = [height length];
也可以在表达式中这样使用:
if([height length]>35){
NSLog(@"hello world");
}
想要知道两个字符串时候相等时,比如给字符串排序时,NSString为你提供了几个比较的方法
isEqualToString: 可以用来比较接收方(receiver,接收消息的对象)和作为参数传递过来的字符串。
isEqualToString: 返回的是BOOL值,用来反馈两个字符串是否相同
//不可变字符串NSString
//求字符串长度
eg:NSString *lenStr = @"hello";
NSInteger len = [lenStr length];
NSLog(@"lenStr length = %ld",len);
//获取字符串中的某一个类型
char c = [lenStr characterAtIndex:3];
NSLog(@"c = %c",c);
//字符串拼接
NSString *appstr = @"hello";
NSString *appstr1 = [appstr stringByAppendingString :@"world"];
NSLog(@"appstr1 = %@",appstr1);
//获取字符串
NSString *appStr = @"hello 1883";
//从N下标开始到结束(包括n下标)
NSString *appStr1 = [appStr subStringFromIndex:6];
//从N下标开始到结束 (不包括n下标)
NSString *appStr2 = [appStr subStringToIndex:2];
//取范围内的字符串,从location 开始 取length个字符
NSRange range = {5,2};
NSString *subStr3 = [appStr subStringFromIndex:2];
//比较两个字符串的大小 ,返回值为yes&no 为BOOL值
NSString *str1 = @"iphone";
NSString *Str2 = @"ipad";
NSIntager result = [str1 compare: str2 ];//此函数返回的是BOOL值
//比较两个字符串时候相等
BOOL flag = [str1 isEqualTostring:str2];//返回值为BOOL值
//判断是否有前缀
flag = [str hasPrefix:@"www."];
//判断是否有后缀
flag = [str hasSuffix:@".con"];
//将所有字母大写
NSString *uppStr = [appStr uppercaseString];
//将所有字母小写
NSString *uppStr = [appStr lowercaseString];
//将首字母大写
NSString *uppStr = [appStr capitalizedString];
//可变字符串NSMutableString
不可变字符串继承字可变字符串 ,不可变字符串的所有方法,可变字符串都可以使用
//创建一个可变字符串,设置为空字符串,预留N个字符的空间;
NSMutableString *mInitStr = [[NSMutableString alloc]initWithCapacity:2];
//使用父类初始化的方法
mInitStr = [[NSMutableString alloc]init];
NSMutableString *mTestStr = [NSMutableString stringWithString:@"hello"];
//拼接
[mTestStr appendString:@"你好"];
[mTestStr appendString:@" %d person",65];
//删除
NSRange rang1 = {12,4};
[mTestStr deleteCharactersInRange:rang1];
//替换
NSRange rang2 = {5,2};
[mTestStr replaceCharactersInRange:rang2 withString:@"海城"];
//重置字符串内容
[mTesStr setString:@"海城"];
//把字符串换成数字
NSString *numStr =@"123";
NSInteger num = [numStrintegerValue];
NSLog(@"num = %ld",num);
NSString *numStr1 = [NSStringstringWithFormat:@"%ld",num];
NSLog(@"numStr1 = %@",numStr1);
那么现在就试试看这个小程序,你能不能看懂:
//创建可变字符串
NSMutableString *http = [[NSMutableStringalloc]
initWithString:@"http://www.lanou3g.com/icon.png"];
//判断是否以PNG结尾
if ([httphasSuffix:@"png"]) {
//是 则将png替换成jpg
//求得png起始位置
NSInteger location = http.length -3 ;
//创建范围
NSRange pngRange = {location,3};
[http replaceCharactersInRange:pngRangewithString:@"jpg"];
}else{
//不是则拼接 .jpg
[httpappendString:@".jpg"];
}
NSLog(@"http:%@",http);