#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// C语言中字符串是由char(ASCII码)字符组成
// char sex = 'm';
// char *sex1 = "male";
// char *sex2[2] = {"male", "fmale"};
// printf("%s", sex2[1]);
// OC的字符串是由unichar(Unicode)码组成
// 不可变字符串 NSString 长度和内容都是不能变的
// 字符串的创建
{
// 创建一个常量字符串, 字面量, 语法糖
// int a = 10;
NSString *str = @"我勒个去";
NSLog(@"%@", str);
// 创建一个格式化字符串
NSString *str1 = [[NSString alloc] initWithFormat:@"%@, %d大湿胸, 师傅被妖怪抓走了", str, 3];
NSLog(@"%@", str1);
NSString *str2 = [NSString stringWithFormat:@"%@, 大湿胸, 师傅又被妖怪抓走了", str];
NSLog(@"%@", str2);
NSString *str3 = [NSString stringWithFormat:@"%@ %@", str1, str2];
NSLog(@"%@", str3);
// 通过另外一个字符串创建字符串
NSString *str4 = [[NSString alloc] initWithString:str3];
NSLog(@"%@", str4);
// NSString *str5 = [[NSString alloc] initWithString:@"哈哈哈哈"];
}
// 字符串常用方法
// 1. 字符串的截取
{
NSString *str11 = @"HelloWorld!";
// 从索引为 5 处开始, 截取到最后
NSString *str12 = [str11 substringFromIndex:5];
NSLog(@"%@", str12);
// 从开始截取到索引处, 但是并不包含
NSString *str13 = [str11 substringToIndex:3];
NSLog(@"%@", str13);
// 快速查看帮助文档, 按住alt(option), 点击想要查阅的内容
// 结构体, 有两个成员变量, location 截取开始的位置, length, 截取的长度
NSRange range = {5, 5};
NSString *str14 = [str11 substringWithRange:range];
NSLog(@"%@", str14);
}
// 2. 字符串的拼接
{
NSString *str11 = @"HelloWorld!";
NSString *str21 = [str11 stringByAppendingString:@"新的一天又开始了"];
NSLog(@"%@", str21);
}
// 3. 字符串的比较
{
// 判断两个字符串的内容是否一样
BOOL result = [str11 isEqualToString:str21];
if (result) {
NSLog(@"两个字符串的内容一样");
}
else{
NSLog(@"不一样");
}
// 字符串的比较
NSComparisonResult cmpResult = [str11 compare:str21];
switch (cmpResult) {
case NSOrderedAscending:
NSLog(@"str11 比 str21 小");
break;
case NSOrderedSame:
NSLog(@"str11 和 str21 一样大");
break;
case NSOrderedDescending:
NSLog(@"str11 比 str21 大");
break;
default:
break;
}
}
// 4. 判断字符串的开头和结尾
{
NSString *str41 = @"Jannifer Lawrence.avi";
// (1) 是否以某某开头
BOOL result41 = [str41 hasPrefix:@"Jannif"];
if (result41) {
NSLog(@"詹妮弗");
}
// (2) 是否以某某结尾
BOOL result42 = [str41 hasSuffix:@".avi"];
if (result42) {
NSLog(@"这是一部小电影");
}
// (3) 是否包含某个字符串
BOOL result43 = [str41 containsString:@"fer Law"];
if (result43) {
NSLog(@"劳伦斯");
}
}
// 5. 大小写转换
{
NSString *str51 = @"heLLo gegsgW";
// 全部转为大写
NSString *str52 = [str51 uppercaseString];
NSLog(@"%@", str52);
// 全部转位小写
NSString *str53 = [str51 lowercaseString];
NSLog(@"%@", str53);
// 每个单词的首字母大写, 其余小写
NSString *str54 = [str51 capitalizedString];
NSLog(@"%@", str54);
}
// 6. C语言字符串和OC字符串的相互转换
{
// 将C字符串转换为OC字符串
NSString *str61 = [[NSString alloc] initWithUTF8String:"呵呵"];
NSLog(@"%@", str61);
// 将OC字符串转换为C字符串
const char *cStr = [str61 UTF8String];
printf("%s\n", cStr);
}
// 7. 字符串的替换
{
NSString *str71 = @"HelloWorld";
// 将 str71 中的所有的 o 换成 逗逼
NSString *str72 = [str71 stringByReplacingOccurrencesOfString:@"o" withString:@"逗逼"];
NSLog(@"%@", str72);
// 通过 range 来替换
NSString *str73 = [str71 stringByReplacingCharactersInRange:NSMakeRange(5, 5) withString:@"Sweety"];
NSLog(@"%@", str73);
}
// 可变字符串 NSMutableString 继承于NSString
// 错误写法
// NSMutableString *mStr = @"test";
NSMutableString *mStr = [[NSMutableString alloc] initWithString:@"ione"];
// 插入字符串, 没有返回值, 操作的是自身
[mStr insertString:@"Ph" atIndex:1];
NSLog(@"%@", mStr);
// 删除字符串
[mStr deleteCharactersInRange:NSMakeRange(3, 3)];
NSLog(@"%@", mStr);
// 替换
[mStr replaceCharactersInRange:NSMakeRange(2, 1) withString:@"hone"];
NSLog(@"%@", mStr);
// 拼接
[mStr appendString:@"6s"];
NSLog(@"%@", mStr);
// 练习
NSMutableString *mStr11 = [NSMutableString stringWithString:@"png54321.jpeg"];
if ([mStr11 hasSuffix:@"png"]) {
// NSRange range = [mStr11 rangeOfString:@"png"];
[mStr11 replaceCharactersInRange:NSMakeRange(mStr11.length - 3, 3) withString:@"jpg"];
}
else{
[mStr11 appendString:@".jpg"];
}
NSLog(@"%@", mStr11);
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
// C语言中字符串是由char(ASCII码)字符组成
// char sex = 'm';
// char *sex1 = "male";
// char *sex2[2] = {"male", "fmale"};
// printf("%s", sex2[1]);
// OC的字符串是由unichar(Unicode)码组成
// 不可变字符串 NSString 长度和内容都是不能变的
// 字符串的创建
{
// 创建一个常量字符串, 字面量, 语法糖
// int a = 10;
NSString *str = @"我勒个去";
NSLog(@"%@", str);
// 创建一个格式化字符串
NSString *str1 = [[NSString alloc] initWithFormat:@"%@, %d大湿胸, 师傅被妖怪抓走了", str, 3];
NSLog(@"%@", str1);
NSString *str2 = [NSString stringWithFormat:@"%@, 大湿胸, 师傅又被妖怪抓走了", str];
NSLog(@"%@", str2);
NSString *str3 = [NSString stringWithFormat:@"%@ %@", str1, str2];
NSLog(@"%@", str3);
// 通过另外一个字符串创建字符串
NSString *str4 = [[NSString alloc] initWithString:str3];
NSLog(@"%@", str4);
// NSString *str5 = [[NSString alloc] initWithString:@"哈哈哈哈"];
}
// 字符串常用方法
// 1. 字符串的截取
{
NSString *str11 = @"HelloWorld!";
// 从索引为 5 处开始, 截取到最后
NSString *str12 = [str11 substringFromIndex:5];
NSLog(@"%@", str12);
// 从开始截取到索引处, 但是并不包含
NSString *str13 = [str11 substringToIndex:3];
NSLog(@"%@", str13);
// 快速查看帮助文档, 按住alt(option), 点击想要查阅的内容
// 结构体, 有两个成员变量, location 截取开始的位置, length, 截取的长度
NSRange range = {5, 5};
NSString *str14 = [str11 substringWithRange:range];
NSLog(@"%@", str14);
}
// 2. 字符串的拼接
{
NSString *str11 = @"HelloWorld!";
NSString *str21 = [str11 stringByAppendingString:@"新的一天又开始了"];
NSLog(@"%@", str21);
}
// 3. 字符串的比较
{
// 判断两个字符串的内容是否一样
BOOL result = [str11 isEqualToString:str21];
if (result) {
NSLog(@"两个字符串的内容一样");
}
else{
NSLog(@"不一样");
}
// 字符串的比较
NSComparisonResult cmpResult = [str11 compare:str21];
switch (cmpResult) {
case NSOrderedAscending:
NSLog(@"str11 比 str21 小");
break;
case NSOrderedSame:
NSLog(@"str11 和 str21 一样大");
break;
case NSOrderedDescending:
NSLog(@"str11 比 str21 大");
break;
default:
break;
}
}
// 4. 判断字符串的开头和结尾
{
NSString *str41 = @"Jannifer Lawrence.avi";
// (1) 是否以某某开头
BOOL result41 = [str41 hasPrefix:@"Jannif"];
if (result41) {
NSLog(@"詹妮弗");
}
// (2) 是否以某某结尾
BOOL result42 = [str41 hasSuffix:@".avi"];
if (result42) {
NSLog(@"这是一部小电影");
}
// (3) 是否包含某个字符串
BOOL result43 = [str41 containsString:@"fer Law"];
if (result43) {
NSLog(@"劳伦斯");
}
}
// 5. 大小写转换
{
NSString *str51 = @"heLLo gegsgW";
// 全部转为大写
NSString *str52 = [str51 uppercaseString];
NSLog(@"%@", str52);
// 全部转位小写
NSString *str53 = [str51 lowercaseString];
NSLog(@"%@", str53);
// 每个单词的首字母大写, 其余小写
NSString *str54 = [str51 capitalizedString];
NSLog(@"%@", str54);
}
// 6. C语言字符串和OC字符串的相互转换
{
// 将C字符串转换为OC字符串
NSString *str61 = [[NSString alloc] initWithUTF8String:"呵呵"];
NSLog(@"%@", str61);
// 将OC字符串转换为C字符串
const char *cStr = [str61 UTF8String];
printf("%s\n", cStr);
}
// 7. 字符串的替换
{
NSString *str71 = @"HelloWorld";
// 将 str71 中的所有的 o 换成 逗逼
NSString *str72 = [str71 stringByReplacingOccurrencesOfString:@"o" withString:@"逗逼"];
NSLog(@"%@", str72);
// 通过 range 来替换
NSString *str73 = [str71 stringByReplacingCharactersInRange:NSMakeRange(5, 5) withString:@"Sweety"];
NSLog(@"%@", str73);
}
// 可变字符串 NSMutableString 继承于NSString
// 错误写法
// NSMutableString *mStr = @"test";
NSMutableString *mStr = [[NSMutableString alloc] initWithString:@"ione"];
// 插入字符串, 没有返回值, 操作的是自身
[mStr insertString:@"Ph" atIndex:1];
NSLog(@"%@", mStr);
// 删除字符串
[mStr deleteCharactersInRange:NSMakeRange(3, 3)];
NSLog(@"%@", mStr);
// 替换
[mStr replaceCharactersInRange:NSMakeRange(2, 1) withString:@"hone"];
NSLog(@"%@", mStr);
// 拼接
[mStr appendString:@"6s"];
NSLog(@"%@", mStr);
// 练习
NSMutableString *mStr11 = [NSMutableString stringWithString:@"png54321.jpeg"];
if ([mStr11 hasSuffix:@"png"]) {
// NSRange range = [mStr11 rangeOfString:@"png"];
[mStr11 replaceCharactersInRange:NSMakeRange(mStr11.length - 3, 3) withString:@"jpg"];
}
else{
[mStr11 appendString:@".jpg"];
}
NSLog(@"%@", mStr11);
}