标签:
NSString 的使用:
#import <Foundation/Foundation.h>
#pragma mark 大小写转换
void caseTest(){
NSString *str = @"GuangDong";
// 转成大写
NSLog(@"大写:%@",[str uppercaseString]);
// 转成小写
NSLog(@"小写:%@",[str lowercaseString]);
// 首字母大写,其他字母都变成小写
[@"age" capitalizedString]; // 这样也可以
NSLog(@"首字母大写:%@",[str capitalizedString]);
}
#pragma mark 比较字符串大小
void compare(){
// 检测内容是否相同
BOOL result = [@"abc" isEqualToString:@"abc"];
NSLog(@"%i",result);
// 比较两个字符串的大小,下面是比较后的三种返回值
// NSOrderedAscending 左边的字符串小于右边
// NSOrderedSame 两边的字符串大小相同
// NSOrderedDescending 左边的字符串大于右边
NSComparisonResult result2 = [@"abc" compare:@"Abc"];
if (result2 == NSOrderedSame){
NSLog(@"两边的字符串大小相同");
} else if(result2 == NSOrderedAscending){
NSLog(@"左边 < 右边");
}else if (result2 == NSOrderedDescending){
NSLog(@"左边 > 右边");
}
// 忽略大小写,来进行比较大小,返回值类型和上面一样
NSComparisonResult result3 = [@"abc" caseInsensitiveCompare:@"aBc"];
if (result3 == NSOrderedSame){
NSLog(@"两边的字符串大小相同");
} else if(result3 == NSOrderedAscending){
NSLog(@"左边 < 右边");
}else if (result3 == NSOrderedDescending){
NSLog(@"左边 > 右边");
}
}
#pragma mark 字符串的搜锁索
void searchStr(){
NSString *str = @"1234df34dfwg5234.txt";
// 返回的是BOOL 类型的数值
NSLog(@"是否以22开头的:%i",[str hasPrefix:@"22"]);
NSLog(@"是否以txt结尾的的:%i",[str hasSuffix:@"txt"]);
// 搜素字符串(从前面开始搜索)
NSRange range = [str rangeOfString:@"34df"];
// rang.length == 0; NSNotFound = long int 的最大值
if (range.location == NSNotFound) {
NSLog(@"不能找到");
} else {
NSLog(@"找到的范围是:%@",NSStringFromRange(range));
}
// 搜索字符串(从结尾开始搜索)
/* NSBackwardsSearch 表示从后面开始搜索
NSLiteralSearch 表示从前面开始逐字的(Literal)搜索
*/
range = [str rangeOfString:@"34df" options:NSBackwardsSearch];
NSLog(@"%@",NSStringFromRange(range));
// 制定范围搜索
NSRange range1 = {.location = 8,.length = 12};
range = [str rangeOfString:@"34df" options:NSBackwardsSearch range:range1];
NSLog(@"%@",NSStringFromRange(range));
}
#pragma mark 字符串的截取(截串)
void subString(){
NSString *str = @"25645dsbcaegr1rwyevw6r351238fbeyf3158";
// 从索引20开始 截取字符串到尾部 输出结果:subString---6r351238fbeyf3158
NSLog(@"subString---%@",[str substringFromIndex:20]);
// 从头部开始截取到索引6之前 输出结果:subString---25645d
NSLog(@"subString---%@",[str substringToIndex:6]);
// 截取中间一段 输出结果:645dsb
NSRange range = NSMakeRange(2, 6);
NSLog(@"subString---%@",[str substringWithRange:range]);
// 以逗号为分割符分成6部分,并且用数组或集合接收
NSString *str2 = @"1-2-3-4-b-a";
// components 元素的意思,SeparatedByString 以某某为分割
NSArray *array = [str2 componentsSeparatedByString:@"-"];
NSLog(@"%@",array);
NSString *str3 = [array objectAtIndex:0];
NSLog(@"%@",str3);
}
#pragma mark 路径相关
void pathTest(){
// 快速创建一个可以添加并且内存可以提自动释放的数组
NSMutableArray *components = [NSMutableArray array];
[components addObject:@"Users"];
[components addObject:@"MJ"];
[components addObject:@"Desktop"];
// 将数组中的所有字符串拼接成一个 路径
// [NSString pathWithComponents:components];
// NSLog(@"components---%@",components);
NSString *path = [NSString pathWithComponents:components];
NSLog(@"components---%@",path);
// 将一个路径分解成一个装着每一个目录的NSArry
NSArray *cmps = [path pathComponents];
NSLog(@"%@",cmps);
// path 是一个常量字符串,是不可变的
path = @"Users/MJ/Desktop/test";
// 判断是否为绝对路径(判断的依据就是看前面是否有 /)
NSLog(@"是否为绝对路径%i",[path isAbsolutePath]);
// 获得最后一个目录
NSLog(@"最后一个目录是:%@",[path lastPathComponent]);
// 是否删除最后一个文件
NSLog(@"删除最后一个目录得到路径:%@",[path stringByDeletingLastPathComponent]);
// 在后面再加上一个文件
NSLog(@"再拼接一个目录%@",[path stringByAppendingPathComponent:@"abc.txt"]);
}
#pragma mark 拓展名处理
void extension(){
NSString *str = @"Users/MJ/Desktop/test.txt";
// 获得拓展名
NSLog(@"拓展名:%@", [str pathExtension]);
// 删除拓展名
NSLog(@"%@",[str stringByDeletingPathExtension]);
// 在后面加上一个拓展名
NSLog(@"%@",[@"abc" stringByAppendingPathExtension:@"mp3"]);
NSLog(@"%@",[str stringByAppendingPathExtension:@"mp3"]);
}
#pragma mark 其他用法
void other(){
NSString *str = @"34"; // 如果不是数字的话转成的 int double 值为 0
int a = [str intValue]; // 转成int 型
double b = [str doubleValue];
float f = [str floatValue];
NSLog(@"a=%i,b=%f,f=%f",a,b,f);
// 是计算字数,而不是字符数
NSLog(@"%zi",[@"我是字符串123" length]);
// 根据索引 取出对应的字符
unichar c = [@"abc" characterAtIndex:1];
NSLog(@"%c",c);
// 返回 C 语言中的字符串
const char *s = [@"sgdav" UTF8String];
NSLog(@"%s",s);
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
caseTest();
compare();
searchStr();
subString();
pathTest();
extension();
other();
}
return 0;
}
////// NSMutableString 的使用
#import <Foundation/Foundation.h>
#pragma mark
void mutableString(){
// 预先分配10个字数的存储空间,可以运行的效率,也可以不预先分配
NSMutableString *str = [[NSMutableString alloc] initWithCapacity:10];
// 添加字符串
[str setString:@"1234"];
// 拼接一个字符串
[str appendString:@"567"]; // 这个方法没有返回值,改变就是 str
[str appendFormat:@"age is %i and height is %.2f",27,1.55];
// 替换字符串
// NSRange range = NSMakeRange(7, 3); 这种方法虽然能实现但太笨拙
NSRange range = [str rangeOfString:@"age"];
[str replaceCharactersInRange:range withString:@"no"];
// 插入字符串 haha 会从2这个位置插入进去
[str insertString:@"haha" atIndex:2];
// 删除字符串
range = [str rangeOfString:@"ha"];
[str deleteCharactersInRange:range];
NSLog(@"%@",str);
// 释放存储空间
[str release];
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
mutableString();
}
return 0;
}
NSString 和nNSMutableString 的常见使用
标签:
原文地址:http://www.cnblogs.com/liuyunfei0808/p/5388391.html