在C语言中,将字符串作为简单的字符数组进行处理,并在数组添加尾部的零字节作为结束标志。
而在Cocoa中,NSString存在很多内置方法,极大的优化了字符串的处理
NSString类型
NSString *string0 = @"hello IOS";//定义字符串
NSString *str = [[NSString alloc] initWithFormat:@"hello"];
NSString *str1 = [NSString stringWithFormat:@"IOs"];//遍历构造器
NSLog(@"%c", [str characterAtIndex:1]);//获取字符串中指定位置的字符
NSInteger count = [string0 length];//字符串长度
NSString *string1 = [string0 stringByAppendingString:@"haha"];//字符串追加
bool flag = [string1 isEqualToString:string0];//字符串比较,注意:此方法只能比较字符串是否相等返回布尔类型值,如需要判断字符串大小应使用compare
long ret2 = [str1 caseInsensitiveCompare:str2];//不区分大小写比较字符串大小
NSString * ptr = [str uppercaseString];//将字符串中的所有小写字符转换成大写 不改变原来的字符串
ptr = [str1 lowercaseString];//将字符串中的所有大写字符转换成小写 不改变原来的字符串
NSRange range = [str4 rangeOfString:@"wr"];//查找子串,找不到返回NSNotFound 找到返回location和length
NSString *string3 = [string0 substringToIndex:5];//从字符串的开头截取到指定位置,但是切记标记是从0开始,不包括5位置的字符
NSString *string4 = [string0 substringFromIndex:5];//这是指从字符串指定位置开始,包括这个位置的字符,向后复制
NSString *string5 = [string0 substringWithRange:NSMakeRange(1, 4)];//从给定的位置1去除长度为4的字串
//拼接字符串,str本身不会变化
NSLog(@"%@ ", [str stringByAppendingFormat:@"IOS"]);
NSLog(@"%@ ", [str stringByAppendingString:@"IOS"]);
//字符串替换,str本身不变
NSLog(@"%@ ", [str stringByReplacingOccurrencesOfString:@"hello"withString:@"Hi"]);
</pre><pre name="code" class="objc"> NSString *number = @"1111";
int num = [number intValue];//字符串转int型
double nums = [number doubleValue];//字符串转double
<pre name="code" class="objc"> NSString * filenames = @"draft-chapter.pages"; //判断字符串是否包含字符串,可以用来判断文件类型
if ([filenames hasPrefix:@"draft"]) {
NSLog(@"this is pages"); //前
}
if ([filenames hasSuffix:@".mov"]) {
NSLog(@"this is mov"); //后
}
<pre name="code" class="objc"> //字符串切分成数组
NSString *string_arr = @"oop:haha:hehe:heihei";
NSArray *chunks = [string_arr componentsSeparatedByString:@":"];
//合并数组为字符串
string_arr = [chunks componentsJoinedByString:@"*"];
NSMutableString类型
NSMutableString *string = [NSMutableString stringWithCapacity:50]; //分配内存
NSMutableString *string_1 = [NSMutableString stringWithString:@"haha"];//插入字符串
[string insertString:@"IOS" atIndex:6]; //指定位置插入字符串
[string deleteCharactersInRange:NSMakeRange(2, 6)]; //指定位置删除指定长度字符串<pre name="code" class="objc"> [string setString:@"Oc"];//设置字符串,string如果存在字符串则替换
[string replaceCharactersInRange:NSMakeRange(3, 4) withString:@"like"];//从第三个字符开始替换,替换四个字符
[string appendString:@"hello there "]; //接收字符串,复制到接收对象的末尾
[string appendFormat:@"human %d", 39]; //与stringWithFormat类似,没有创建新的字符串,将格式化的字符串附加在接收字符串的末尾
NSRange range = [string rangeOfString:@"there"];//删除字符串中得字符there
range.length++;
[string deleteCharactersInRange:range];
<pre name="code" class="objc"> NSRange subStr = [string rangeOfString:@"IOS"]; //查找字符串
if (subStr.location != NSNotFound) {
[string deleteCharactersInRange:subStr]; //删除已查找到的字符串
}
//查找第一个匹配并替换
if (subStr.location != NSNotFound) {
[string replaceCharactersInRange:subStr withString:@"This"]; //把第1个遇到的substr替换为This
}
//查找全部匹配的字符,并替换
NSString *search = @"a";
NSString *replace = @"A";
subStr = [string rangeOfString:search];
while (subStr.location != NSNotFound) {
[string replaceCharactersInRange:subStr withString:replace];
subStr = [string rangeOfString:search];
}