您的位置:首页 > 移动开发 > IOS开发

IOS--OC--LessonNSString 字符串

2015-06-26 22:21 489 查看
一 NSString

1.含义:继承于 NSObject 不可变字符串,一旦创建不能改变

2.格式化字符串 NSLog(@”hello%@”,@”lanou”);

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

1. NSString *str9 = [[NSString alloc]initWithContentsOfFile:@"/Users/lanouhn/Documents/ali.txt"encoding:NSUTF8StringEncoding error:nil];


蓝色是数据类型 玫红是地址,你文档存得位置;黄色是编码格式;紫色是返回值,如果出错返回什么.

2. 1⃣获取某段范围的字符串

①定义: 如果 A 是 B 的字串, A 必须是连续的,且 B 中也能找到与 A 一样连续的对应相同的字符的,这时A 才是 B 的字串.

ps:  NSString *str11 = @"abdcefg";
NSRange rang = {0,4};0-4就是范围
NSString *str12 = [str11 substringWithRange:rang]; 需要新的变量接收
NSLog(@"%@",str12);
2⃣ 通过字串获取在父串中的范围
① NSRange rang2 =[ str11 rangeOfString:@"abd"];
NSLog(@"%lu,%lu",rang2.location,rang2.length);// 知道字符串 引入 之后用.location .length 求出这个字符串 范围


3⃣ 获取到某个位置的字串 从0开始 到指定位置之前

① NSString *str13 = [str11 substringToIndex:3];
NSLog(@"%@",str13);
从 str11 里的字符串 获取字串 从0开始 到你写的 Index 的数字之前的字串
② 获取从某个位置开始的字串 从设定的位置开始 到结束
NSString *str14 = [str11 substringFromIndex:3 ];
NSLog(@"%@",str14);
和 index 差不多 但他是从 index 开始往后获取字串


4⃣ 字符串的拼接

①定义:因为nsstring 不可变 所有需设定新的接收

ps:  NSString *str15 = [str stringByAppendingString:@"yours"];
NSLog(@"%@",str15);

Ps: 格式化的拼接
格式化拼接 肯定有占位符 多少个占位符 逗号后面就跟几个基数
NSString *str16 = [str stringByAppendingFormat:@"your%@",@"firend"];
NSLog(@"%@",str16);


��️字符串的替换

NSString *str17 = [str16 stringByReplacingOccurrencesOfString:@"小丽" withString:@"刘亦菲"];
NSLog(@"%@",str17);


@“小丽”位置的字符串 必须要和你 str 里定义的一样 这样@“刘亦菲才能找到字符串替换”

6⃣ 字符串是否包含某个前缀或者后缀

①公式:前缀 hasPrefix;

后缀 hasSuffix;

ps:  NSString *Sstr = @"中国北京海淀清河";
//  判断字符串是否包含某个前缀 连续的字串
BOOL B1 = [Sstr hasPrefix:@"中国"];
NSLog(@"%d",B1);
NSLog(@"%@",B1 ? @"YES":@"NO");


// 判断字符串是否包含某个后缀 连续的字串

BOOL B2 = [Sstr hasSuffix:@"海淀"];
NSLog(@"%d",B2);
NSLog(@"%@",B2 ? @"YES":@"NO”);//这个是能打出 YES NO 的方式;




NSString *s = @"冠希.JPG";
NSString *s1 = nil; //设定新的接收
BOOL B3 = [s  hasSuffix:@"JPG"];// 判断有么有
if (B3 !=1) {// 假设1/0
s1 = [s stringByAppendingFormat:@"JPG"];
}else {
s1 = [s stringByReplacingOccurrencesOfString:@"JPG" withString:@"PNG"];
}
NSLog(@"%@",s1);


7⃣️ 判断两个字符串相等

①公式:isEqualToString

NSString *Sstr2 = @"小王";
NSString *Sstr3 = @"李校长";
BOOL ss = [Sstr2 isEqualToString:Sstr3];
NSLog(@"%d",ss)


② 在最上面定义了宏 判断与宏是否相同

#define USERNAME @"123456@qq.com"
#define PASSWORD @"1234567"
NSString *inPutUserName = @"123456";
NSString *inPutPassWord = @"1234567";
//    判断有么有"qq.com"
BOOL B3 = [inPutUserName hasSuffix:@"@qq.com"];
//      NSString *s1 = nil; 在这里不用拼接 她自己就是指针变量
if (B3!=1) {
inPutUserName = [inPutUserName stringByAppendingString:@"@qq.com"
];}
//        判断用户名和密码  结果为真就登陆成功 反之
BOOL B4 = [inPutUserName isEqualToString:USERNAME];//与定义的用户名和密码想不相同
BOOL B6 = [ inPutPassWord isEqualToString:PASSWORD];
if (B4&&B6) {
NSLog(@"OK");
}else{
NSLog(@"用户名或密码错误");
}


8⃣️ 比较字符串大小

公式: compare 区分大小写的

caseInsensitiveCompare 不区分大小写

①compare 区分大小写的 与枚举有关 所用 switch

核心: NSOrderedAscending = -1L, NSOrderedSame = 0, NSOrderedDescending = 1

//    -1 :1<2;0: 1=2; 1: 1 >2;
NSString *Sstr1 = @"LOL";
NSString *Sstr2 = @"LSPL";
NSInteger n =  [Sstr1 compare:Sstr2];
NSLog(@"%ld",n);
switch (n ) {
case 1:
NSLog(@"Sstr2大");
break;
case 0:
NSLog(@"same");
case -1:
NSLog(@"Sstr1大");
break;
default:
NSLog(@"error");
break;
}


② caseInsensitiveCompare 不区分大小写

9⃣️ 可变字符串: NSMutableString

①定义: 继承自 NSString 所以 NSString 的方法 NSMutableString 都能用

ps:①完整的定义
NSMutableString *mm = [[NSMutableString alloc]initWithString:@"我与僵尸有个约会"];
NSLog(@"%@",mm);
快速定义   后面要加.mutableCopy
NSMutableString *mm1 = @"我与僵尸有个约会123".mutableCopy;
NSLog(@"%@",mm1);


② 在指定位置插入字符段

公式: 指定位置 :insertString:(nsstring *) atIndex:(NSIneger);

末尾:appendString:( nsstring *);

[mm1 insertString:@"皮卡丘" atIndex:3];
NSLog(@"%@",mm1);
// 皮卡丘 是你要插入的东西 atIndex是你要插入的位置

[mm1 appendString:@"红莲岛"];
NSLog(@"%@",mm1);


// 直接在末尾插入

③ 指定范围内删除 字符段

公式:deleteCharactersInRange:NSMakeRange

[mm1 deleteCharactersInRange:NSMakeRange (0, 9)];


④ 改 指定范围内修改

公式:eplaceCharactersInRange:NSMakeRange(0, 2) withString:@”躺在星空下的草地上”

[mm1 replaceCharactersInRange:NSMakeRange(0, 2) withString:@"躺在星空下的草地上"];
// with 空间补多少都可以 NSM里输入的范围 意义 清空一段 塞入你所补的字符串
NSLog(@"%@",mm1);


三 NSNumber 数字类 继承 NSValue,

// 主要把基本数据类转化为对象 也可把对象转化为基本数据类型

NSNumber *intNumber = [NSNumber numberWithInt:100];
NSLog(@"%@",intNumber);
// 3.14 浮点型
NSNumber *floatNumber = [NSNumber numberWithFloat:3.14];
NSLog(@"%@",floatNumber);
//    short
NSNumber *shortNumber = [NSNumber numberWithShort:2];
NSLog(@"%@",shortNumber);

//    BOOL
NSNumber *BOOLNumber = [ NSNumber numberWithBool:0];
NSLog(@"%@",BOOLNumber);
//    NSInteger
NSNumber *integerNumber = [NSNumber numberWithUnsignedInteger:4];
NSLog(@"%@",integerNumber);


// 数值对象转基本数据类型

int num =   [intNumber intValue];
NSLog(@"%d",num);
float num1 = [floatNumber floatValue];
NSLog(@"%.2f",num1);
short num2 = [shortNumber shortValue];
NSLog(@"%d",num2);
BOOL num3 = [BOOLNumber boolValue];
NSLog(@"%d",num3);
NSInteger num4 = [integerNumber integerValue];
NSLog(@"%ld",num4);


四 字母大小写变换

公式:大写:uppercaseString

小写:lowercaseString

首字母大写:capitalizedString

ps:

NSString *Sstr1 = @"i am student come from lanou where are you from";
大写: NSString *Sstr3 = [Sstr1 uppercaseString];
NSLog(@"%@",Sstr3);
小写:  NSString *Sstr5 = [ Sstr3 lowercaseString];
首字母大写:  NSString *Sstr7 =   [ Sstr5 capitalizedString];
NSLog(@"%@",Sstr7);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: