OC基础之-----字符串NSString

来源:互联网 发布:apache cxf 2.5.9下载 编辑:程序博客网 时间:2024/04/29 04:55

字符串的操作在项目中是比较重要的类,所以我们要认真的对待, API 当中还有很多号的属性,可以自行研究,这里只是对一些常用的进行总结.


一 NSString 字符串语法

1.    OC中的基础数据类型

NSInteger 在64位系统下,相当于 long ;在非64位系统下,相当于 int.

CGFloat 在64位系统下相当于 double,在非64为系统下相当于 float.

2.    系统为我们提供的类库(NSString 和 NSMutableString):API文档中的一些说明:

Inherits froms:继承自那个类, NSOject

Conform to:遵循什么协议

Framerwork:属于那个框架

Availability:什么时候可用的(可用范围)

Dealared in: 声明在什么头文件里

Related documents:相关文档

Sample code: 实例代码

3.    NSString 继承自 NSObject,不可变字符串,一旦创建就不能改变.

1⃣  NSString *str = @”lanou”;

NSLog(@”%@”,str);  //使用%@进行占位

2⃣  NSString *str = [[NSStringalloc]init];    //自定义初始化的空字符串

3⃣  NSString *str = [NSStringstring];        //便利构造器定义字符串

4.    字符串的创建

1⃣  字符串的格式化创建(initWithFormat  和 stringWithFormat)

NSString *str = [[NSString alloc]initWithFormat:@”你爱%@”,@”蓝欧”];

NSString *str =[NSString stringWithFormat:@”我爱%@”,@”你”];//便利构造器方法

2⃣  也可以直接赋值 

NSString *str = @”lanou”;

5.    将 C语言中的字符串转化为OC的对象(“iOS”->@”iOS”)(initWithUTF8String  和stringWithUTF8String),一个汉字在内存中占3个字节

NSString *str = [[NSString alloc]initWithUTF8String:”iOS”];

NSString *str = [NSString stringWithUTF8String:”iOS”];

6.    将文件中的内容读入到字符串对象(initWithContentsOfFile: encoding: error:)

NSString *str =[[NSString alloc]initWithContentsOfFile:@”/Users/lanouhn

/Desktop/123.txt”encoding:NSUTF8String error:nil];

[NSStringstringWithContentsOfFile:@”/Users/lanouhn/Desktop/123.txt”encoding:NSUTF8String error:nil]

7.    将字符串内容写入到文件中去(writeToFile: atomically: encoding: error:)

[strwriteToFile: @”/Users/lanouhn/Desktop/123.txt” atomically:YESencoding:NSUTF8String error:nil];

8.    操作字符串

1⃣ 字符串的长度(length)

NSInteger a = [str length];

2⃣ 获取某个范围内的字符串(substringWithRange: )

NSString *str = @”abcdefghijk”;

NSRange range = {0,4};

NSString *str1 = [str substringWithRange:range];

3⃣ 通过子串获取在父串中的范围(rangOfString:)

NSRange rang2 = [str rangeOfString:@”def”];

NSLog(@”%lu,%lu”,rang2.location,rang2.length);

9.    字符串的截取

1⃣ 从0开始到指定位置之前,不包含指定位置索引的内容(substringToIndex:)

NSString *str1 = [str substringToIndex:3];

2⃣ 从下标为3开始获取字符串,直到字符串结尾(substringFromIndex:)

NSString *str2 = [str substringFromIndex:3];

   3⃣ 设置截取字符串的范围(substringWithRange:)

NSRange rang =NSMakeRange(0,3);

NSString*strRang = [str substringWithRange:rang];

   4⃣ 字符串的拼接(stringByAppendingString:)(stringByAppendingFormat:)

NSString *str3 = [str stringByAppendingString:@”你妹的”];

[str stringByAppendingFormat:@”是我们的%@”,”爱好”];

   5⃣ 字符串的替换(stringByReplacingOccurrencesOfString)

NSString *str4 = [strstringByReplacingOccurrencesOfString:

@”abc” withString:@”刘亦菲”];

   6⃣字符串的前缀和后缀(hasPrefix: 和 hasSuffix:)

     判断字符串文件是否包含某个前缀和后缀文件

BOOL aString =[sStr hasPreFix:@”中国”];

BOOL aString =[sStr hasSuffix:@”清河”];

7⃣ 判断两个字符串是否相等(isEqualToString:)

BOOL resu =[sStr isEqualToString:sStr1];

8⃣ 比较字符串的大下(compare:和caseInsensitiveCompare:)

compare:区分大小写,比较结果:NSOrderedAscending=-1,NSOrderedSame= 0,NSOrderedDescending = 1;

NSInteger n =[str compare:str1];

caseInsensitiveCompare:不区分大小写

[strcaseInsensitiveCompare:str1];

二 NSMutableString 可变字符串的

1.    可变字符串,继承自 NSString, 所以 NSString 的方法 NSMutableString都能用.

2.    初始化(initWithString:)

NSMutableString *mStr = [[NSMutableString alloc]initWithString:@”我与僵尸有个约会”];

3.    NSMutableString *mStr =@”我与有个约会”.mutableCopy;

1⃣ 在指定位置插入字符串(insertString: atIndex:)

[mStr insertString :@”美女” atIndex:2];

2⃣ 拼接字符串,在尾部拼接(appendString: 和 appendFormat:)

[mStr appendString:@”,在海滩上”];

3⃣ 在指定范围内删除(deleteCharactersInRange:NSMakeRange(0,5))

[mStr deleteCharactersInRange:NSMakeRange(0,5)];

4⃣ 修改指定范围字符串(replaceCharactersInRange:NSMakeRange(0,3)

withString:@”我和皮卡丘有个约会”)

4.    字符串操作

1⃣ 将字符串的字母全部改为大写(uppercaseString)

2⃣ 将字符串中的字母全部改为小写(lowercaseString)

3⃣ 将字符串中单词的首字母全部改为大写(capitalizedString)

5.    字符串的遍历(使用for循环)(characterAtIndex:)获取字符串中的某个字符

for(int i = 0;i <count;i++){

char c = [str characterAtIndex:i];

NSLog(@”字符串第%d位为% c”,i,c);

}

6.    替换字符串的内容(setString:)

[str setString:@”Hello Word!”];

7.    按照所给出的范围和字符串替换原有的字符(replaceCharactersInRange:)

[str replaceCharactersInRange:NSMakeRange(0,4) withString:@”that”];

  三 NSNumber

1.    数字对象,继承自 NSValue, 作用主要把基本数据类型,转化为对象,

2.    转化方法(numberWithInt,numberWithFloat,numberWithShort,

numberWithBool,numberWithInteger)

3.    数值对象转化为基本数据类型(intValue,floatValue,shortValue,boolValue)

int Number= [intNumber intValue];


注意:字符串对象的 length 方法:计算的是字符串的字数,而 strlen 计算的是字符数.例如:"我们123"length 得出的结果是5,而 strlen 得出的结果是9,因为一个汉字占3个字节.




0 0