C和OC字符串的相互转换
// c 转oc 字符串
char *p = "zhangsan";
NSString *str1 = [NSString stringWithCString:p encoding:NSUTF8StringEncoding];
NSLog(@"%@",str1);
//将oc字符串转为c字符串
NSString *str2 = @"hello world";
const char *p1 = [str2 UTF8String];
NSLog(@"%s",p1);
//判断字符串是否相等
NSString *str = @"Hello world";
NSString *str1 = @"hello world";
//isEquoTo 用来判断两个字符串是否相等
BOOL vavl = [str isEqualTo:str1];
if (vavl) {
NSLog(@"相等");
}
else
{
NSLog(@"不相等");
}
//按ASICC码比较
NSComparisonResult result =[str compare:str1];
// NSComparisonResult 类型重定义 本质上是NSInterger
//枚举值
//NSOrderedAscending -1l 是升序
//NSOrderedDescending 1 是降序
// NSOrderedSame // 0 一样大
if (result == NSOrderedSame) {
NSLog(@"一样大");
}
else if(result == NSOrderedDescending)
NSLog(@"第一个大");
else if(result == NSOrderedAscending)
{
NSLog(@"第二个大");
}
NSString *str2 = @"sina.com.cn";
//判断是前缀还是后缀
// hasPrefix 是前缀判断方法
// hassuffix 是后缀判断方法
BOOL vavl1 = [str2 hasPrefix:@"sina"];
if (vavl1) {
NSLog(@"是前缀");
}
vavl1 = [str2 hasSuffix:@".cn"];
if (vavl1) {
NSLog(@"是后缀");
//将一个数字字符串转成普通类型
NSString *str6 = @"333";
NSLog(@"%d",[str6 intValue]);
NSLog(@"%ld",[str6 integerValue]);
NSLog(@"%g",[str6 doubleValue]);
NSLog(@"%g",[str6 floatValue]);
//读取子串
NSString *str = @"hello world";
//str substringFromIndex 是从给定的下标开始,一直读到最后
NSLog(@"%@",[str substringFromIndex:2]);
//substringToIndex 是从第0号元素开始,读取到给定下标,但不包含给定下标元素
NSLog(@"%@",[str substringToIndex:2]);
//查找子串 world
//NSRange 返回值类型 是一个struct 返回是在原字符串的位置和长度
NSRange range = [str rangeOfString:@"world"];
if (range.location == NSNotFound) //存在这一个位置
{
NSLog(@"没有找到");
}
else
{
NSLog(@"%ld,%ld",range.location,range.length);
}
// 通过一个c 语言的结构体去查找子串,返回一个子串
NSRange range1 = {1,3};
NSLog(@"%@",[str substringWithRange:range1]);
//字符串拼接
NSString *str = @"hello world";
NSMutableString *str2 = [[NSMutableString alloc] initWithString:str];
NSLog(@"%@",str2);
//appendString 是自动在原字符串末尾添加字符串
[str2 appendString:@"zuibang"];
NSLog(@"%@",str2);
[str2 appendFormat:@"%d",1605];
NSLog(@"%@",str2);
//设置
[str2 setString:@"hello Ios"];
NSLog(@"%@",str2);
//在指定的位置插入字符串
//insertString 下标值 不能超过原字符串最大下标,否则程序崩溃
[str2 insertString:@"zhangsan" atIndex:3];
//改
//replaceCharactersInRange (NSRange) NSMakeRange
// 将指定范围内的字符串修改为设定的字符串
[str2 replaceCharactersInRange:NSMakeRange(0, 3) withString:@"lisi"];
NSLog(@"%@",str2);
// 字符串替换
[str2 replaceOccurrencesOfString:@"zhangsan" withString:@"lisi" options:NSLiteralSearch range:NSMakeRange(0, [str2 length])];
//第一个 是要被替换的子串
//第二个 最后在原字符中要显示的
//第三个 默认NSLiteralSearch
//第四个 NSMakeRange 位置 0 长度 整个字符串的长度
NSLog(@"%@",str2);
//删除 指定范围内的子串
[str2 deleteCharactersInRange:NSMakeRange(4, 5)];
NSLog(@"%@",str2);