您的位置:首页 > 其它

Objc-C 知识点回顾 四 NSString 、NSMutableString

2015-12-08 11:06 246 查看
1.NSString
//NSString:不可变字符串, 一旦创建, 不能修改
//初始化方法
//创建空字符串
NSString *string1 = [[NSString alloc] init];
NSLog(@"%@", string1);
//根据给定的常量字符串,创建NSString对象
NSString *string2 = [[NSString alloc] initWithString:@"iPhone"];
NSLog(@"%@", string2);
//常量区字符串
NSString *string3 = @"iPhone";
NSLog(@"%@", string3);
NSLog(@"%p", string3);//输出地址
//如果要创建的字符串中出现其他变量, 需要用initWithFormat的方式创建
NSInteger version = 6;
NSString *string4 = [[NSString alloc] initWithFormat:@"iPhone %ld", version];
NSLog(@"%@", string4);

//便利构造器
NSString *str1 = [NSString string];
NSLog(@"%@", str1);
NSString *str2 = [NSString stringWithString:@"iOS"];
NSLog(@"%@", str2);
NSString *str3 = @"iOS";
NSLog(@"%@", str3);
NSString *str4 = [NSString stringWithFormat:@"iOS %ld", version];
NSLog(@"%@", str4);
//获取字符串的长度
//    NSUInteger length = [str4 length];//调用getter方法
//    NSLog(@"%lu", length);
NSLog(@"%lu", str4.length);//点语法
//判断字符串是否以置顶字符串开始或结束
NSString *str5 = @"abcdpp123";//常量区字符串
NSString *str6 = [[NSString alloc] initWithFormat:@"abcdpp123"];//堆区字符串
//前缀
BOOL result = [str6 hasPrefix:@"abd"];
NSLog(@"%d", result);
//后缀
result = [str6 hasSuffix:@"23"];
NSLog(@"%d", result);
//字符串截取(截取子字符串)
//获取abc(开头字符串)
NSString *subStr1 = [str6 substringToIndex:3];
NSLog(@"%@", subStr1);
//获取123(结尾字符串)
NSString *subStr2 = [str6 substringFromIndex:6];
NSLog(@"%@", subStr2);
//获取dpp(中间字符串)
//NSRange range = {3, 3};
NSString *subStr3 = [str6 substringWithRange:NSMakeRange(3, 3)];
NSLog(@"%@", subStr3);
//拼接字符串
NSString *newSubStr = [subStr1 stringByAppendingString:subStr2];
NSLog(@"%@", subStr1);
NSLog(@"%@", subStr2);
NSLog(@"%@", newSubStr);
NSLog(@"%p", newSubStr);//输出地址
NSString *newSubStr1 = [NSString stringWithFormat:@"%@%@", subStr1, subStr2];
NSLog(@"%@", newSubStr1);
NSLog(@"%p", newSubStr1);//输出地址
//替换字符串
//@"NBA" -> @"CBA";
NSString *str7 = @"NBANNN";
NSString *newSubStr2 = [str7 stringByReplacingOccurrencesOfString:@"N" withString:@"C"];
NSLog(@"%@", newSubStr2)
//字符串比较
//@"NBA" 和 @"CBA";
//    NSString *str8 = @"NBA";
//    NSString *str9 = @"CBA";
NSString *str8 = [[NSString alloc] initWithFormat:@"NBA123456aa"];
NSString *str9 = [[NSString alloc] initWithFormat:@"NBA123456aa"];
//isEqualToString比较的是字符串的内容
if ([str8 isEqualToString:str9]) {
NSLog(@"字符串相等");
} else {
NSLog(@"不一致");
}
//==比较两个对象是否一致, 如果对象一致, 他们的内容一定一致
if (str8 == str9) {
NSLog(@"字符串相等");
} else {
NSLog(@"不一致");
}
//字符串和数值类型相互转换
//@"123"
//转化成数字, 遇到非数字即停止转换
NSString *str10 = @"123a456";
int a = [str10 intValue];
NSLog(@"%d", a);
NSInteger b = [str10 integerValue];
NSLog(@"%ld", b);
//大小写转换操作
//@"ios" -> @"iOS"
NSString *str11 = @"ios";
//全部大写
NSString *newStr = [str11 uppercaseString];
NSLog(@"%@", newStr);
//首字母大写
NSLog(@"%@", [str11 capitalizedString]);
//全部小写
NSLog(@"%@", [str11 lowercaseString]);
2.NSMutableString:可变字符串
//@"iPhone"
//创建可变字符串, 容器大小是一个预期值, 一般写为0, 让系统自己根据内容大小分配空间
NSMutableString *mString = [[NSMutableString alloc] initWithCapacity:0];
NSLog(@"%@", mString);
//添加字符串
[mString appendString:@"iPhone"];
NSLog(@"%@", mString);
[mString appendFormat:@"iPhone %ld", version];;
NSLog(@"%@", mString);
//插入字符串
[mString insertString:@" " atIndex:6];
NSLog(@"%@", mString);
//删除字符串
[mString deleteCharactersInRange:NSMakeRange(0, 7)];
NSLog(@"%@", mString);
//做个练习,给定一个图片文件名,判断字符串中是否以“png”结尾,如果是就替换成“jpg”,如果不是,就拼接”.jpg”。
NSMutableString *name = [[NSMutableString alloc] initWithCapacity:0];
[name appendString:@"蓝鸥.png"];
if ([name hasPrefix:@"png"]) {
NSLog(@"以'png'结尾");
[name replaceCharactersInRange:NSMakeRange(name.length - 3, 3) withString:@"jpg"];
} else {
NSLog(@"不以'png'结尾");
[name appendString:@".jpg"];
}
NSLog(@"%@", name);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: