一、NSString
C语言中,字符串是char(ASCII码)字符组成。
OC中,字符串是由unichar(Unicode)字符组成。
NSString:不可变字符串,创建以后,内容和长度不能更改。
NSMutableString:可变字符串,创建以后,内容还可以修改。
创建一个NSString对象:
1. 初始化方法
NSString *s1 = [[NSString alloc] initWithFormat:@"abc"];
format –格式串(使用方式与C语言格式化输出函数printf相似)。
2. 便利构造器
NSString *s1 = [NSString stringWithFormat:@"abc"];
3. 字面量–笑笑语法,语法糖
NSString *str = @"abcdef";
获取字符串长度:
NSString *str = @"abcdefg";
unsigned long strlength = [str length];
获取字符串中字符:
NSString *str = @"abcdefg";
unichar c = [str characterAtIndex:5];
比较字符串是否相等:
NSString *s1 = @"abd";
NSString *s2 = @"abc";
BOOL isEqual = [s1 isEqualToString:s2];
字符串比较:
//(Ascll码逐个比较大小,s1>s2值为1)
NSComparisonResult result = [s1 compare:s2];
获取子串:
str = [str substringFromIndex:2];
//截取子串 substringFromIndex:从给定的下标开始一直到最后(包含该下标对应的字符).
str = [str substringToIndex:5];
//substringToindex : 从头开始一直到给定的下标停止,得到对应的子串(不包含该下标对应的字符).
//NSRange 的成员变量
//location:起始位置(包含该位置)
//length 从开始位置开始往后的长度.
str = [str substringWithRange:NSMakeRange(2, 4)];
字符串拼接:
NSString *s1 = @"write the code";
NSString *s2 = @" change the world";
NSString *newStr = [s1 stringByAppendingString:s2];
字符串替换:
NSString *str = @"hello, world";
NSString *newStr = [str stringByReplacingCharactersInRange:NSMakeRange(3, 2) withString:@"ios"];
字符串转化为int类型:
NSString *s1 = @"hello";
NSString *s2 = @"100";
NSInteger v1 = [s1 integerValue];
NSInteger v2 = [s2 integerValue];
字符串全部大写:
NSString *str = @"hello, world";
NSString *upper = [str uppercaseString];
字符串全部小写:
NSString *lower = [upper lowercaseString];
首字母大写:
NSString *captital = [lower capitalizedString];
判断字符串前缀后缀:
NSString *url = @"www.baidu.com";
BOOL success = [url hasPrefix:@"www"];
BOOL isSuccess = [url hasSuffix:@"com"];
二、NSMutableString
NSMutableString 是 NSString类的子类。可以对原字符串对象进行增、删、改等操作。
注意:语法糖语法创建的对象只能是不可变的。
创建可变字符串对象:
//初始化方法
NSMutableString *mstr = [[NSMutableString alloc] initWithCapacity:1];
//便利构造器
NSMutableString *mstr1 = [NSMutableString stringWithCapacity:1];
字符串拼接:
[mstr appendFormat:@"abc"];
插入字符串:
[mstr insertString:@"iOS" atIndex:1];
删除字符串:
[mstr deleteCharactersInRange:NSMakeRange(2, 1)];
字符串替换:
[mstr replaceCharactersInRange:NSMakeRange(1, 2) withString:@"windows"];
重置字符串:
[mstr setString:@"abc"];
三、NSNumber
NSNumber:实现基本数据类型与OC对象类型的相互转化。
int a = 100;
NSNumber *intNumber = [NSNumber numberWithInt:a];
int b = [intNumber intValue];
语法糖写法:(只能转化为对象类型,不能对象类型转化为基本数据类型)
NSNumber *n = @(200);
NSNumber *n1 = @(a);
四、NSValue
NSValue:完成结构体变量和对象类型之间的相互转化。
NSRange range = {10, 5};
NSValue *rangeValue = [NSValue valueWithRange:range];
NSRange range1 = [rangeValue rangeValue];