字符串:可变字符串与不可变字符串

一 NSString是不可变字符串,所有它所有产生其他字符串方法都是生成一个新的字符串,而不会改变原来字符串

第一种:字面量,它是常量字符串,存储常量区

NSString *str = @"abc";

第二种是通过 快捷的构造方法

NSString stringWithFormat:

第三种方式 初始化方法

[NSString allocinitWithFormat:

二,字符串的获取

1、获取字符长度

 NSString *str = @"www.itcast.cn";

long length = str.length;

2、获取子串

从哪个索引开始截取到字符串的末尾(包含索引上字符)

NSString *str2 = [str substringFromIndex:4];

从字符开头开始截取到索引的位置(不包含索引上的字符)

NSString *str3  = [str substringToIndex:3];

从哪个位置开始截取,截取多长

NSRange range = {4,6};

NSString *str4 = [str substringWithRange:range];

获取某个子串所在的区间

NSRange range1 =  [str rangeOfString:@"itcast"];

NSLog(@"%@",NSStringFromRange(range));

NSRange range2 =  [str rangeOfString:@"icast"];

if (range2.location == NSNotFound) {

        NSLog(@"没有这个子串");

}

3字符串以什么开头

hasPrefix  前缀

hasSuffix  后缀

4、字符串的比较

1)比较是内容,从前往后一个一个的比较

NSComparisonResult result = [str1 compare:str2];

NSOrderedAscending = -1L, str1 < str2

NSOrderedSame,            str1 == str2

NSOrderedDescending       str1 > str2

- (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask;

NSCaseInsensitiveSearch 忽略大小写

NSNumericSearch 用于数值类型的比较

4、字符串大小写的转变

uppercaseString  大写

lowercaseString  小写

字符转基本数据类型

int i = intStr.intValue;

double d = intStr.doubleValue;

float f = intStr.floatValue;

C语言字符串转换为OC字符串

[NSString stringWithCString:"hehe" encoding:NSUTF8StringEncoding];

OC语言字符串转换为C字符串

const char *cStr = [str8 cStringUsingEncoding:NSUTF8StringEncoding];

在原有字符串的末尾拼接另一个字符产生一个新的字符串

stringByAppendingString:

字符替换(去掉字符串中的空格)

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement

使用某个字符串替换掉原来字符串中某个区间的字符串

NSRange range = [str rangeOfString:@"itcast"];

str1  = [str stringByReplacingCharactersInRange:range withString:@"传智播客"];

删除原字符串中的所有指定的字符

str1 =  [str stringByReplacingOccurrencesOfString:@"itcast" withString:@""];

【掌握】去掉两头的空格

str1 = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

在原来的路径上拼接一个路径

stringByAppendingPathComponent:

删除原来文件路径的扩展名.xxx

stringByDeletingPathExtension:

为没有扩展名的文件路径添加扩展名

stringByAppendingPathExtension:

二 NSMutableString 可变字符,它是NSString子类 可以进行增改删的操作,一个字符串需要经常修改其中的内容,那么就使用NSMutableString

Capacity 表示容量,可以容纳多少字符,如果你字符串超这个存储空间它扩展它

stringWithCapacity

- (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc;展它插入字符串

- (void)deleteCharactersInRange:(NSRange)range;删除range范围内的字符串

- (void)appendString:(NSString *)aString;拼接字符串

- (void)appendFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);

- (void)setString:(NSString *)aString;


注意:可变字符串不能使用字面量的方式赋值,字面量定义的是一个不可以变字符串.例如下面所写错误

NSMutableString *strMM = @"abc";




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值