OC的字符串操作

OC的字符串操作,

NSString *str = @"天空";

格式化创建字符串

NSLog(@"hi");
NSLog(@"hi %@",@"you");

NSString *str2 = [[NSString alloc]initWithFormat:@"我爱%@ ",str];
NSLog(@"%@",str2);

遍历构造器初始化字符串

//1.
NSString *str3 = [NSString stringWithFormat:@"我我%@",str2];
NSLog(@"%@",str3);


//2.
NSString *str4 = [[NSString alloc]initWithString:@"我爱大海"];
NSString *str5 = [NSString stringWithString:@"我来了"];

将C语言的字符串转为OC的字符串对象

NSString *str6 = [[NSString alloc]initWithUTF8String:"iOS"]; // 初始化转
NSLog(@"%@",str6);

NSString *str7 = [NSString  stringWithUTF8String:"iOS"]; // 通过构造器转
NSLog(@"%@",str7); 

将文件中的内容读入到字符串对象中

初始化方法

// initWithContensOfFile:@"此处填写文件路径" 	encoding:NSUTF8StringEncoding(此处填写编码格式) 			    error:nil(此处填写错误信息)

NSString *str8 = [[NSString alloc]initWithContentsOfFile:@"/Users/mylove/Desktop/test.txt"encoding:NSUTF8StringEncoding error:nil];

NSLog(@"%@",str8);

构造器方法

NSString *str9 = [NSString stringWithContentsOfFile:@"/	Users/mylove/Desktop/test.txt" 	encoding:NSUTF8StringEncoding error:nil];

NSLog(@"%@",str9);

对字符串的操作

计算字符串的长度
NSUInteger len = [str7 length];
NSLog(@"%lu",len);
获取某段范围的字符串

如果A是B的子串,A必须是连续的,且在B中也能找到与A一样连续的对应相同字符段,这时A才是B子串

NSString *str10 = @"abcdefg";
NSRange rang = {0,4};
NSString *str11 = [str10 substringWithRange:rang];
NSLog(@"%@",str11);

通过子串获取在父串中的范围

NSRange rang2 = [str10 rangeOfString:@"def"];
NSLog(@"%lu , %lu",rang2.location,rang2.length);

获取到某个位置的子串,从0开始到指定位置之前

NSString *str12 = [str10 substringToIndex:3];
NSLog(@"%@",str12);

从某个位置开始读取字符串,包含当前位置的字符

NSString *str13 = [str10 substringFromIndex:3];
NSLog(@"%@",str13);

字符串的拼接

格式化拼接

1.
NSString *str14 = [str stringByAppendingString:@"是我的"];
NSLog(@"%@",str14);

2.
NSString *str15 = [str stringByAppendingFormat:@"是我的%@.%@",@".",@"."];
NSLog(@"%@",str15);

字符串替换

替换掉原字符串中出现的字符段

NSString *str16 = [str15 stringByReplacingOccurrencesOfString:@"天空" withString:@"汤。。。圆"];
NSLog(@"%@",str16);

判断字符串是否包含某个前缀或者后缀

NSString *string1 = @"OC字符串练习";

判断前缀

BOOL b1 = [string1 hasPrefix:@"OC"];
NSLog(@"%d",b1);
NSLog(@"%@",b1 ? @"YES" : @"NO");

判断后缀

BOOL b2 = [string1 hasSuffix:@"练习"];
NSLog(@"%@",b2 ? @"YES" : @"NO");

判断两个字符串是否相等

NSString *string2 = @"helloworld";
NSString *string3 = @"hello";

BOOL b3 = [string2 isEqualToString:string3];
NSLog(@"%d",b3);

比较两个字符串的大小

对比时区分字符串大小写

NSString *string4 = @"Helloworld";
NSString *string5 = @"helloworld";

/*
返回值类型 NSComparisonResult 是一个枚举类型
enum {
    NSOrderedAscending = -1,
    NSOrderedSame, = 0
    NSOrderedDescending = 1
};
typedef NSInteger NSComparisonResult;
*/

NSInteger n = [string4 compare:string5];
NSLog(@"%ld",n);

// 也可以使用 switch case  搭配  枚举使用
/*
switch (n) {
    case NSOrderedAscending:
        NSLog(@"%@ < %@",sStr4,sStr5);
        break;
    case NSOrderedSame:
        NSLog(@"%@ = %@",sStr4,sStr5);
        break;
    case NSOrderedDescending:
        NSLog(@"%@ > %@",sStr4,sStr5);
        
    default:
        break;
}
 */

不区分大小写比较,只比较字符串是否相同

n = [string4 caseInsensitiveCompare:string5];
NSLog(@"%ld",n);

可变字符串 NSMutableString 它继承自NSString,所以NSString的所有方法它都能用

NSMutableString *mStr = [[NSMutableString alloc]initWithString:@"我与你有个约会"];
NSLog(@"%@",mStr);

NSMutableString *mStr1 = @"我与有个约会".mutableCopy;

// 在指定位置插入字符串
[mStr1 insertString:@"klone"atIndex:2];
NSLog(@"%@",mStr1);

// 在尾部拼接字符串
[mStr1 appendString:@"在岛上"];
NSLog(@"%@",mStr1);

// 指定范围内删除字符段
[mStr1 deleteCharactersInRange:NSMakeRange(0, 5)];
NSLog(@"%@",mStr1);


// 在指定的范围内修改
[mStr1 replaceCharactersInRange:NSMakeRange(0,3) withString:@"我和你。。。有"];
NSLog(@"%@",mStr1);


NSString *string6 = @"i love you";

// 全部转换成大写

NSString *string7 = [string6 uppercaseString];
NSLog(@"%@",string7);

// 全部转换成小写

NSString *string8 = [string7 lowercaseString];
NSLog(@"%@",string8);

// 每个单词首字母大写

NSString *string9 = [string8 capitalizedString];
NSLog(@"%@",string9);

下面是一个NSNumber 数字型,,,主要把数据基本类型转化为对象,也可以把对象转化为基本数据类型

整型转对象,以整型为例

NSNumber *intNum = [NSNumber numberWithInt:100];
NSLog(@"%@",intNum);

对象转整型

int num1 = [intNum intValue];
NSLog(@"%d",num1);

/*
 练习:
 判断一个字符串后缀是否有  .jpg  ,没有的话就加上,有的话就换成 .png
 
 */

NSString *s = @"name.jpg";
NSString *s2 = nil;
// 判断后缀是否含有.jpg
if ([s hasSuffix:@".jpg"]){
    
    s2 = [s stringByReplacingOccurrencesOfString:@".jpg" withString:@".png"];
    
}else{

    s2 = [s stringByAppendingString:@".jpg"];

}

NSLog(@"%@",s2);


/*

 练习:
 验证用户使用qq邮箱登录,若输入不为qq邮箱格式则加上@qq.com
 
 */
NSString *inPut = @"1234";
BOOL b4 = [inPut hasSuffix:@"@qq.com"];
if (b4 == 0){
    
    inPut = [inPut stringByAppendingString:@"@qq.com"];
    NSLog(@"%@",inPut);

}else {

    NSLog(@"%@",inPut);

}