您的位置:首页 > 编程语言 > C语言/C++

OC语言-----NSString,NSMutableString基本用法

2014-08-07 22:31 459 查看
<span style="font-size:18px;">NSString:</span>
<span style="font-size:18px;">//NSMutableString(可变字符串)的拼接,删除.插入.替换
NSMutableString *str = [NSMutableString stringWithFormat:@"lanouhenan"];
//对于可变字符串的增删改方法, 都是在原字符串基础上进行修改, 所以修改之后的原字符串的内容发生变化, 所以无需返回值
//1 在原字符串基础上拼接Frank
[str appendFormat:@"Frank"];
NSLog(@"%@", str);
//2 在原字符串基础上拼接Frank
[str appendFormat:@"%@", @"Frank"];
NSLog(@"%@", str);
//3 删除字符串, 在原字符串基础上删除henan.
[str deleteCharactersInRange:NSMakeRange(0, 5)];
NSLog(@"%@", str);
//4 插入字符串, 在原字符串基础上插入lanou
[str insertString:@"lanou" atIndex:0];
NSLog(@"%@", str);
//5 替换字符串, 在原字符串基础上替换Duke
[str replaceCharactersInRange:NSMakeRange(10, 5) withString:@"Duke"];
NSLog(@"%@", str);

//NSString
//1 创建对象
//1 便利构造器(+号方法)
NSString *str1 = [NSString stringWithFormat:@"iPhone%d", 5];
NSLog(@"str1 = %@", str1);
//2 alloc+初始化方法
NSString *str2 = [[NSString alloc] initWithFormat:@"iPhone%d", 4];
NSLog(@"str2 = %@", str2);
//(3) 根据字符串初始化OC字符串对象
NSString *str3 = @"lanou";//存储字符串@"lanou"的地址
//2 求字符串长度
NSUInteger length = [str3 length];
NSLog(@"length = %lu", length);

//3 获取字符串总的某个字符
//Terminating app due to uncaught exception 'NSRangeException', reason: '-[__NSCFConstantString characterAtIndex:]: Range or index out of bounds'
//reason:问题产生的原因 .NSCFString == NSString, 又是一个-号方法, 所以问题产生的原因是:让一个NSString的类型对象, 调用characterAtIndex:方法时, 给定的下标越界了, 超出了范围
//解决方案:将数组下标修改为范围之内的数即可
unichar charac = [str3 characterAtIndex:4];
NSLog(@"%c", charac);

//4 判断是否以指定的字符串开头或结尾
//例如:判断一个字符串是否以http开头, 是否以.com结束
NSString *str4 = [[NSString alloc] initWithFormat:@"http://www.baidu.com"];
//判断是否以http开头
BOOL isPrefix = [str4 hasPrefix:@"http"];
NSLog(@"isPrefix = %d", isPrefix);

BOOL isSuffix = [str4 hasSuffix:@".com"];
NSLog(@"isSuffix = %d", isSuffix);

//5 查找指定字符串的范围
NSRange range = [str4 rangeOfString:@"www"];
if (range.length == 0) {
NSLog(@"No Found");
} else {
NSLog(@"location:%lu, length:%lu", range.location, range.length);
//将NSRange类型的结构体变量转变成字符串对象
NSLog(@"%@", NSStringFromRange(range));
}

//6 字符串截取(获取子字符串)
//1 获取给定的下标之后的子串, 包含指定下标对应的字符
//2 获取给定的下标之前的子串, 但是不包含指定下标对应的字符
//3 获取指定范围内的子串
NSString *subString1 = [str4 substringFromIndex:7];
NSLog(@"subString1 = %@", subString1);

NSString *subString2 = [str4 substringToIndex:7];
NSLog(@"subString2 = %@", subString2);

NSString *subString3 = [str4 substringWithRange:NSMakeRange(7, 4)];
NSLog(@"subString3 = %@", subString3);

//7 字符串拼接
NSString *str5 = [NSString stringWithFormat:@"lanou"];
//lanou后拼接henan
NSString *str6 = [str5 stringByAppendingString:@"henan"];
NSLog(@"str6 = %@", str6);
//lanou后拼接henan9ban
NSString *str7 = [str5 stringByAppendingFormat:@"%@%dban", str6, 9];//Format可以格式化输出
NSLog(@"str7 = %@", str7);

//8 替换字符串
NSString *str8 = [NSString stringWithFormat:@"lanouououisbigcompany"];
//1将o替换成牛逼
//第一个参数是被替换字符串  第二个参数是替换字符串
NSString *str9 = [str8 stringByReplacingOccurrencesOfString:@"ou" withString:@"牛逼"];
NSLog(@"str9 = %@", str9);

NSString *str10 = [str8 stringByReplacingCharactersInRange:NSMakeRange(3, 2) withString:@"牛逼"];
NSLog(@"str10 = %@", str10);

//9 字符串比较
NSString *str11 = [NSString stringWithFormat:@"bbc"];
NSString *str12 = [NSString stringWithFormat:@"bbc"];
NSInteger result1 = [str11 compare:str12];
NSLog(@"result1 = %ld", result1);

NSComparisonResult result2 = [@"311" compare:@"222"];
NSLog(@"result2 = %ld", result2);

//10 字符串和数值类型转换  从第一个字符开始如果在遇到除了空格之外的字符时, 将前面的空格忽略掉, 继续往下找, 读取数字, 直到遇到非数字时结束
//1 将字符串@"123"转换为整数123
NSInteger result3 = [@"    12a3as" intValue];
NSLog(@"%result3 = ld", result3);
//2 将数字转为字符串对象
NSString *str13 = [NSString stringWithFormat:@"%d", 5];
NSLog(@"str13 = %@", str13);

//11大小写装换
//1 将@"lanOU"全部转为大写  uppercaseString 转为 LANOU
//2 将@"lanOU"全部转为小写 lowercaseString 转为 lanou
//3 将@"lanOU"首字母转为大写 capitalizedString 转为  Lanou
NSString *str14 = [@"lanOU" capitalizedString];
NSLog(@"str14 = %@", str14);
</span>

NSMutableString:

<span style="font-size:18px;">//NSMutableString(可变字符串)的拼接,删除.插入.替换
NSMutableString *str = [NSMutableString stringWithFormat:@"lanouhenan"];
//对于可变字符串的增删改方法, 都是在原字符串基础上进行修改, 所以修改之后的原字符串的内容发生变化, 所以无需返回值
//1 在原字符串基础上拼接Frank
[str appendFormat:@"Frank"];
NSLog(@"%@", str);
//2 在原字符串基础上拼接Frank
[str appendFormat:@"%@", @"Frank"];
NSLog(@"%@", str);
//3 删除字符串, 在原字符串基础上删除henan.
[str deleteCharactersInRange:NSMakeRange(0, 5)];
NSLog(@"%@", str);
//4 插入字符串, 在原字符串基础上插入lanou
[str insertString:@"lanou" atIndex:0];
NSLog(@"%@", str);
//5 替换字符串, 在原字符串基础上替换Duke
[str replaceCharactersInRange:NSMakeRange(10, 5) withString:@"Duke"];
NSLog(@"%@", str);</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: