// // main.m // 字符串截取 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { NSString *str = @"<head>小码哥</head>"; /* // NSRange : 位置/长度 // NSRange range = {6, 3}; // NSRange range; // range.location = 6; // range.length = 3; // 只要是OC提供的结构体, 一般都可以使用NSMakeXXX来创建 // NSRange range = NSMakeRange(6, 3); */ // 1.动态获取截取的起始位置 NSUInteger location = [str rangeOfString:@">"].location + 1; // 2.动态获取截取的长度 // 注意:rangeOfString是从左至右的开始查找, 只要找到就不找了 // NSUInteger length = [str rangeOfString:@"<" options:NSBackwardsSearch].location - location; 从后向前找, NSUInteger length = [str rangeOfString:@"</"].location - location; NSLog(@"location = %lu, length = %lu", location, length); NSRange range = NSMakeRange(location, length); NSString *newStr = [str substringWithRange:range]; NSLog(@"str = %@", str); NSLog(@"newStr = %@", newStr); NSString *temp = @"abcdefa"; NSRange range =[temp rangeOfString:@"a" options:NSBackwardsSearch]; NSLog(@"%lu", range.location); // 从什么地方开始截取, 一直截取到最后 NSString *newStr = [str substringFromIndex:6]; NSLog(@"newStr = %@", newStr); // 从开头开始截取, 一直截取到什么位置 NSString *newStr = [str substringToIndex:6]; NSLog(@"newStr = %@", newStr); /* <head>小码哥</head> --> 小码哥</head> --> 小码哥 <head>小码哥</head> --> <head>小码哥 --> 小码哥 */ NSLog(@"str = %@", str); NSUInteger location = [str rangeOfString:@">"].location + 1; NSString *newStr = [str substringFromIndex:location]; NSLog(@"newStr = %@", newStr); location = [newStr rangeOfString:@"</"].location; // 改变了指针的指向, 并不是修改了原来的字符串 newStr = [newStr substringToIndex:location]; NSLog(@"newStr = %@", newStr); return 0; }
// // main.m // 字符串替换 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { /* // 需求: 将&符号替换为/ NSString *str = @"http:&&www.520it.com&img&lnj.gif"; // OccurrencesOfString: 要替换谁 // withString: 用谁替换 NSString *newStr = [str stringByReplacingOccurrencesOfString:@"&" withString:@"/"]; NSLog(@"newStr = %@", newStr); // 1.去除空格 2.将&替换为/ NSString *str = @" http: &&www. 520it.com &img&lnj.gif "; // 1.去除空格 NSString *newStr = [str stringByReplacingOccurrencesOfString:@" " withString:@""]; NSLog(@"newStr = |%@|", newStr); NSString *newStr2 = [newStr stringByReplacingOccurrencesOfString:@"&" withString:@"/"]; NSLog(@"newStr2 = |%@|", newStr2); */ // 3.替换首尾 NSString *str1 = @" http:&&www.520it.com&img&lnj.gif "; NSString *str = @"HTTP://www.520it.com/img/LNJ.GIF"; NSCharacterSet *set1 = [NSCharacterSet whitespaceCharacterSet]; NSString *newStr1 = [str stringByTrimmingCharactersInSet:set1]; NSCharacterSet *set = [NSCharacterSet uppercaseLetterCharacterSet]; NSString *newStr = [str stringByTrimmingCharactersInSet:set]; //首尾大小写去掉了 NSLog(@"newStr = |%@|", newStr); return 0; }
// // main.m // 字符串与路径 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { NSString *str = @"User/lnj/Desktop/lnj.txt.jpg"; // 1.判断是否是绝对路径 // 其实本质就是判断字符串是否以/开头 if([str isAbsolutePath]) //no { NSLog(@"是绝对路径"); }else{ NSLog(@"不是绝对路径"); } // 2.获取文件路径中的最后一个目录 // 本质就是获取路径中最后一个/后面的内容 NSString *newStr = [str lastPathComponent]; NSLog(@"%@", newStr); //lnj.txt.jpg // 3.删除文件路径中的最后一个目录 // 本质就是删除最后一个/后面的内容, 包括/也会被删除 NSString *newStr1 = [str stringByDeletingLastPathComponent]; NSLog(@"%@", newStr1); //User/lnj/Desktop // 4.给文件路径添加一个目录 // 本质就是在字符串的末尾加上一个/ 和指定的内容 // 注意: 如果路径后面已经有了/, 那么就不会添加了 // 如果路径后面有多个/, 那么会自动删除多余的/, 只保留一个 NSString *newStr2 = [str stringByAppendingPathComponent:@"xmg"]; NSLog(@"%@", newStr2); //User/lnj/Desktop/lnj.txt.jpg/xmg // 5.获取路径中文件的扩展名 // 本质就是从字符串的末尾开始查找., 截取第一个.后面的内容 NSString *newStr3 = [str pathExtension]; NSLog(@"%@", newStr3); //jpg // 6.删除路径中文件的扩展名 // 本质就是从字符串的末尾开始查找.,删除第一个.和.后面的内容 NSString *newStr4 = [str stringByDeletingPathExtension]; NSLog(@"%@", newStr4); //User/lnj/Desktop/lnj.txt // 7.给文件路径添加一个扩展名 // 本质就是在字符串的末尾加上一个.和指定的内容 NSString *newStr5 = [str stringByAppendingPathExtension:@"jpg"]; NSLog(@"%@", newStr5); //User/lnj/Desktop/lnj.txt.jpg.jpg return 0; }
// // main.m // 字符串的转换 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { // NSString *str = @"abc"; // 1.将字符串转换为大写 NSString *newStr = [str uppercaseString]; NSLog(@"%@", newStr); // 2.将字符串转换为小写 NSString *newStr2 = [newStr lowercaseString]; NSLog(@"%@", newStr2); // htpp://www.520it.com/img/lnj.GIF; // 3.将字符串的首字符转换为大写 NSString *newStr = [str capitalizedString]; NSLog(@"%@", newStr); // 4.字符串与基本数据类型的转换 NSString *str1 = @"110"; NSString *str2 = @"120"; // str1 + str2; // 错误 int value1 = [str1 intValue]; int value2 = [str2 intValue]; NSLog(@"sum = %i", value1 + value2); // 注意: 如果不是int,double,float,bool,integer,longlong这些类型就不要乱用 NSString *str3 = @"abc"; int value3 = [str3 intValue]; NSLog(@"value3 = %i", value3); // 5.C语言字符串和OC字符串之间的转换 char *cStr = "lnj"; NSString *str = [NSString stringWithUTF8String:cStr]; NSLog(@"str = %@", str); NSString *newStr = @"lmj"; const char *cStr2 = [newStr UTF8String]; NSLog(@"cStr2 = %s", cStr2); return 0; }