黑马程序员技术交流社区
标题:
OC中的字符串对象
[打印本页]
作者:
yushimin763
时间:
2015-8-13 20:35
标题:
OC中的字符串对象
字符串对象
在OC中,提供了两个操作NSString类(不可变字符串)和NSMutableString类(可变字符串)。
一、NSString类
(1)初始化
使用字符串常量直接初始化一个NSString对象
NSString * s1 = @"welcome to China";
使用NSString类提供的方法对NSString对象进行初始化
NSString * s2 = [NSString string];
NSString * s3 = [[NSString alloc] initWithFormat:@"China have been %d years of history", year];
NSString * s4 = [NSString stringWithFormat:@"China have been %d years of history", year];
(2)C和OC字符串的互转
C字符串转OC字符串
NSString * s1 = [[NSString alloc] initWithUTF8String:"jack"];
OC字符串转C字符串
char * s2 = [s1 UTF8String];
(3)字符串的常用操作
获取字符串的长度
NSUInteger Count = [s1 length];
获取当前位置字符串的字符(遍历字符串)
for (int i = 0; i < count; i ){
char c = [s1 characterAtIndex:i];
NSlog(@"字符串第%d位为%c", i ,c);
}
字符串全部转化为大写
[s1 uppercaseString]
字符串全部转化为小写
[s1 lowercaseString]
转化为每个词首字母大写
[s1 capitalizedString]
字符串完全相等比较
[s1 isEqualToString: s2]
判断一个字符串是否以另一个字符串开头
[s1 hasPrefix: s2]
判断一个字符串是否以另一个字符串结尾
[s1 hasSuffix: s2]
区分大小写的比较字符串内容是否相等
[s1 compare: s2]
不区分大小写的比较字符串内容是否相等
[s1 caseInsensitiveCompare: s2]
caseInsensitiveCompare和 compare 方法的返回值类型是NSComparisonResult,它是一个枚举类型,定义方式:
enum
{
NSOrderedAscending = -1L, //表示比较的字符串小于被比较的字符串
NSOrderedSame, //比较的字符串内容完全相等
NSOrderedDescending //表示比较的字符串大于被比较的字符串
}
判断s2在s1中的位置
NSRange range = [s1 rangOfString: s2];
range.location //获取s2在s1中范围的位置
range.length //获取s2在s1中范围的长度
NSRange类型是一个结构体类型,用来表示事物的范围,通常是字符串里的字符范围或者数组里的元素范围,其定义方法如下:
typedef struct _NSRange
{
NSUInteger location; //表示范围中的起始位置
NSUInteger length; //表示范围的长度
} NSRange;
从字符串的开头一直截取到指定的位置,但不包括该位置的字符
[s1 substringToIndex:3]
截取指定位置开始(包括指定位置的字符),并包括之后的全部字符
[s1 substringFromIndex:3]
按照所给出的位置,长度,任意地从字符串中截取
[s1 substringWithRange: NSMakeRange(0,4)]
二、NSMutableString类
NSMutableString类是NSString的子类,其创建的字符串长度和内容都是可变的。提供了追加、删除、修改、插入的一系列方法。
添加普通字符串
[str appendString: @"china"]
添加一个指定形式的字符串
[str appendFormat: @"已经有%d年了",5]
删除可变字符串中的字符
[str deletCharactersInRange: [str rangeOfString: @"hellow"]]
在指定位置插入字符串
[str insertString:@"hellow" atIndex: 2]
把原字符串中的字符串换成另外的字符串
[str replaceCharactersInRange:[str rangeOfString:@"hellow"] withString:@"你好"]
作者:
默凉雨
时间:
2015-8-13 22:04
666。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2