OC学习笔记——字符串

字符串就是连续的字符序列,OC中有两种字符串:

  • NSString:NSString类是不可变类,一旦被创建,其中的字符序列是不可改变的,直到对象被销毁
  • NSMutableString:NSMutableString是NSString的子类,因此可以调用NSString的所有方法,NSMutableString的对象也可以直接当成NSString对象使用。NSMutableString类的对象是字符序列可变的字符串,NSMutableString类为其对象所代表字符串的修改提供了若干方法。

下面介绍有关字符串的基本方法。

  1. 创建NSString对象的若干种方法
  • 利用@""直接创建
NSString *a = @"XUPT3G";
NSLog(@"%@", a);
  • 利用initWithFormat方法,通过其他变量对字符串进行赋值
NSString *b = @"OC";
NSString *a = [[NSString alloc] initWithFormat:@"hello, %@!", b];
NSLog(@"a = %@", a);
int b = 18;
NSString *a = [[NSString alloc] initWithFormat:@"今天天气%d度。", b];
NSLog(@"a = %@", a);
  • 通过unichar数组,以ascii码的形式初始化字符串
unichar data[6] = {88, 85, 80, 84, 51, 71};
NSString *a = [[NSString alloc] initWithCharacters:data length:6];
NSLog(@"%@", a);
  • 将C语言中字符串转换为NSString字符串
char *c = "XUPT3G";
NSString *a = [NSString stringWithUTF8String:c];
NSLog(@"%@", a);
  • 利用文件内容初始化字符串
NSString *a = [NSString stringWithContentsOfFile:@"NSStringTest.m" encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@", a);
  1. 给对象发送lowercaseString信息,可以将字母全部转换为小写,uppercaseString则是全部转换为大写
NSString *a = @"aBc";
NSLog(@"a.lowercaseString = %@, a.uppercaseString = %@", [a lowercaseString], [a uppercaseString]);
  1. 通过capitalizedString方法,找到字符串中所有单词,并转换为首字母大写其余字母全部小写的状态
NSString *a = @"hello, WORLD!";
NSLog(@"a.capitalizedString = %@", [a capitalizedString]);
  1. hasPrefix方法能检测字符串头部是否包含指定的字符串,并用0或1的返回值告诉我们;hasSuffix则是检测字符串尾部
NSString *a = @"hello, world!";
NSLog(@"hel在头部:%d, hel在尾部:%d, rld!在尾部:%d。", [a hasPrefix:@"hel"], [a hasSuffix:@"hel"], [a hasSuffix:@"rld!"]);
  1. 使用containsString方法,可以检测字符串是否包含指定字符串,并用0或1的返回值告诉我们
NSString *a = @"hello, world!";
NSLog(@"是否包含wor:%d, 是否包含Wor:%d。", [a containsString:@"wor"], [a containsString:@"Wor"]);
  1. length可以获取字符串长度
NSString *a = @"hello, world!";
NSLog(@"a.length = %d", [a length]);
  1. xxxValue可以将字符串转换为某一类型的数据,如int、float等
NSString *a = @"100";
NSString *b = @"59.5";
NSLog(@"a = %d, b = %f", [a intValue], [b floatValue]);
  1. isEqualToString可以判断两个字符串是否相等
NSString *a = @"hello, world!";
NSLog(@"是否相等:%d", [a isEqualToString:@"hello,world!"]);
  1. 使用rangeOfString可以获取字符串的范围对象(NSRange类型),范围对象拥有两个属性,位置和长度:
  • 位置是被搜索字符串在指定字符串中的索引
  • 长度是被搜索字符串的长度
NSString *a = @"hello, world!";
NSRange range = [a rangeOfString:@"wor"];
NSLog(@"ramge.location = %lu", (unsigned long)range.location);
NSLog(@"ramge.length = %lu", (unsigned long)range.length);
  1. characterAtIndex获取字符串的第n个字符
NSString *a = @"hello, world!";
NSLog(@"a.characterAtIndex.5 = %c", [a characterAtIndex:5]);
  1. substringToIndex获取从字符串头部至第n个字符(不包含)之间的所有字符,substringFromIndex获取第n个字符及其之后的所有字符
NSString *a = @"hello, world!";
NSLog(@"a.substringToIndex.5 = %@", [a substringToIndex:5]);
NSLog(@"a.substringFromIndex.5 = %@", [a substringFromIndex:5]);
  1. NSMakeRange(a, b)获取从a开始连续b个字符的字符串范围对象,substringWithRange可将字符串对象通过字符串输出
NSString *a = @"hello, world!";
NSRange range = NSMakeRange(7, 5);
NSLog(@"a.substringWithRange = %@", [a substringWithRange:range]);
  1. stringByReplacingOccurrencesOfString:@“a” withString:@“b” 可将字符串中的a内容全部替换为b内容
NSString *a = @"hello, world!";
NSString *replace = [a stringByReplacingOccurrencesOfString:@"world" withString:@"OC"];
NSLog(@"%@", replace);
  1. stringByAppendingString:可在字符串尾部添加字符串
NSString *a = @"hello, world!";
NSString *add = [a stringByAppendingString:@" hello, OC!"];
NSLog(@"%@", add);
  1. 可定义一个字符集合,它包含所有特殊符号,再通过给字符串发送指定的信息,清除字符串里所有的特殊符号(仅字符串前端、后端连续的特殊符号),这样的做法可用于清除用户输入前后的无意错误输入
NSString *a = @"-------hello, world-------";
NSCharacterSet *characterset = [NSCharacterSet punctuationCharacterSet];
a = [a stringByTrimmingCharactersInSet:characterset];
NSLog(@"%@", a);
  1. 给字符串发送appendString消息,可以往字符串尾部拼接更多信息;insertString可以在指定位置添加字符串
NSMutableString *mutableString = [[NSMutableString alloc] initWithString:@"This is"];
[mutableString appendString:@" NSMutableString"];
[mutableString insertString:@"a " atIndex:8];
NSLog(@"%@", mutableString);
  1. deleteCharactersInRange可以通过范围对象删除指定范围的字符
NSMutableString *mutableString = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];
[mutableString deleteCharactersInRange:NSMakeRange(0, 10)];
NSLog(@"%@", mutableString);
  1. setString可以将字符串整体替换为新的字符串
NSMutableString *mutableString = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];
[mutableString setString:@"clear"];
NSLog(@"%@", mutableString);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值