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);