object-c 之字符串的操作

这个礼拜,公司的任务轻,不到2天就基本上搞定了。

今天想给自己总结下oc中的字符串的操作。

在oc中,可以用来定义字符串的类是NSString,它直接继承NSObject,它还派生出来一个子类,就是NSMutableString。这二者的区别就是:NSString一旦定义好了,就不能在定义好的字符串中增删操作,NSMutableString是可变的。

@interface NSString : NSObject <NSCopying, NSMutableCopying, NSSecureCoding>
NSString遵循了复制的协议和安全编码的协议,所以它的子类也同样遵循它所遵循的规范。(关于协议和代理回头再给自己补上一课)	

在oc中,用2个不同后缀的文件来区分开来一个类的声明和实现,即.h文件来声明一个类,放在.h文件里面的属性和方法,外部是能够访问到的;用.m文件来作为该类的实现,外面是访问不到的。在h文件中用 @interface 类名 :父类 <协议或代理方法> 来声明一个类,在m文件中用@implementation类名 来实现一个类。在m文件中有

@interface AbObjectcIntruduction ()
@end

可以在@end前面添加一些额外的全局熟悉。如:

@interface AbObjectcIntruduction ()
{
   NSString       *string;
   NSMutableArray *array;
}
@end
这2个属性默认就是@private的,也不需要@property 来标识。对private的熟悉可以直接调用变量名,对 property的熟悉需要使用_变量名或者self.变量名来调用。
在ios5以后,语言环境会自己给我们生成get/set方法,也不需要调用@synthesize 属性名 来给熟悉生成访问方法。自己写了get/set方法的话,系统优先调用自己写的访问方法。

回顾了一些啰嗦的小点,开始看看NSString的一些操作。
NSString实例的生成有很多中方法,可以直接生成NSString *nameString = @"can"; 或者调用它自身的一些方法来生成 NSString *nameString = [NSString string];

oc 中记录位置的index是从0开始的,NSString有获取子字符串的方法:

- (NSString *)substringFromIndex:(NSUInteger)from;
- (NSString *)substringToIndex:(NSUInteger)to;
- (NSString *)substringWithRange:(NSRange)range;
第三个方法是可以返回指定范围的子字符串。

它还有几个判断的方法:

- (BOOL)isEqualToString:(NSString *)aString;//判断是否与aString相同
- (BOOL)hasPrefix:(NSString *)aString;//判断是否以aString开始
- (BOOL)hasSuffix:(NSString *)aString;//判断是否以aString作为后缀

- (BOOL)isEqual:(id)object; 这个方法是从NSObject类继承过来的,是用来判断是否与object在内存中的位置是否相同。

字符串的分割还是比较常用的,其方法就是 - (NSArray *)componentsSeparatedByString:(NSString *)separator; 按照传入的string来分割,返回一个数组。

NSMutableString的一些常用的方法有:
它的初始化方法有:
- (id)initWithCapacity:(NSUInteger)capacity;
+ (id)stringWithCapacity:(NSUInteger)capacity;

区别在于:第一个调用内存分配之后再初始化,第二个直接生成一个实例,自动分配内存。

常用的方法有:

- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;
- (void)appendString:(NSString *)aString;
这2个都是目前项目中常用到的。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值