一 NSString是不可变字符串,所有它所有产生其他字符串方法都是生成一个新的字符串,而不会改变原来字符串
第一种:字面量,它是常量字符串,存储常量区
NSString *str = @"abc";
第二种是通过 快捷的构造方法
NSString stringWithFormat:
第三种方式 初始化方法
[NSString alloc] initWithFormat:
二,字符串的获取
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";