标签:
-----<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
Foundation框架
框架是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合,以便使研发程序变得更容易.
Foundation框架允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组,字典和集合,其他功能包括处理日期和时间、内存管理、处理文件系统、存储(或归档)对象、处理几何数据结构(如点和长方形)
显示隐藏文件 : defaults write com.apple.finder AppleShowAllFiles –bool true
隐藏隐藏文件 : defaults write com.apple.finder AppleShowAllFiles –bool false
---------------NSString的用法
1).直接创建方式:
NSString *str = @"abc";
2).格式化创建:
NSString *st2 = [NSString stringWithFormat:@"%@", @"jack"];
NSString *str = [[NSString alloc] initWithFormat:@"My age is %d", 10];
3).文本编码:
中文 :GBK(3个字节) GB2312(3个字节)
UTF - 8:国际通用编码(2个字节)
4). 字符串写入文件:
NSError *err;//错误对象
[str writeToFile:@"/Users/zhaoxiaohu/Desktop/" atomically:YES encoding:NSUTF8StringEncoding error:&err];
if (err != nil) {
NSLog(@"写入失败!,%@",err);
}else{
NSLog(@"写入成功");
}
5).字符串从文件读取:
NSError *err;
NSString *str = [NSString stringWithContentsOfFile:@"/Users/zhaoxiaohu/Desktop/str.txt" encoding:NSUTF8StringEncoding error:&err];
if (err != nil) {
NSLog(@"读取失败!,%@",err);
}else{
NSLog(@"读取成功");
NSLog(@"%@",str);
}
6).字符串比较函数:
NSComparisonResult result = [str1 compare:str2];
//比较的时候,不区分大小写,参考字符的个数进行比较
NSComparisonResult result = [str1 compare:str2 options:NSCaseInsensitiveSearch|NSNumericSearch];
返回值:
NSOrderedAscending(str1<str2)升序
NSOrderedDescending(str1>str2)降序
NSOrderedSame(str1 = str2)相等
NSString *str1 = @"abc"; // a 97
NSString *str2 = @"abc"; // A 65
//取出每个字符的ASCII码值 ,比较ASCII码值大小
//compare方法比较大小
//compare 默认的区分大小写的
//compare 这个函数,不能增加条件
NSComparisonResult result = [str1 compare:str2];
//比较的时候,不区分大小写,参考字符的个数
NSComparisonResult result = [str1 compare:str2 options:NSCaseInsensitiveSearch|NSNumericSearch];
switch (result) {
case NSOrderedAscending:
NSLog(@"str1 < str2 升序");
break;
case NSOrderedDescending:
NSLog(@"str1 > str2 降序");
break;
case NSOrderedSame:
NSLog(@"str1 == str2 ");
break;
default:
break;
}
7). 判读字符串是否相等:
NSString *str1 = @"abc";
NSString *str2 = @"abc";
str1 == str2 比较的是地址 (==比较的是字符串的地址)
[str1 isEqualToString:str3],比较的是内容,区分大小写(这个方法非常常用)
NSString *str1 = @"abc";
NSString *str2 = @"abc";
//地址的比较
// "==" 不能够判断字符串是否相等的
//判断字符串内容真正是否相等,使用是
//isEqualToString:
//注意:他是区分大小写的
if ([str1 isEqualToString:str3]) {
NSLog(@"相等");
}else{
NSLog(@"不相等");
}
8). 检测字符串前后缀:
NSString *url = @"http://asdfasdfasdfaasdfadsfaf";
[url hasPrefix:@"http://"]; 字符串是否以http:开头//检测前缀
NSString *imgName = @"logo.jpg";
[imgName hasSuffix:@".jpg"]; 检测字符串是否以.jpg结尾//检测后缀
NSString *url =@"http://sjhasfjkfsjfhskfsbbbbb";
if( [url hasPrefix:@"http"]){
NSLog(@"是网址");
if ([url hasSuffix:@".jpg"]) {
NSLog(@"是图片");
}else{
NSLog(@"不是");
}
}
9).查找字符串:
格式:
NSRange range = [str1 rangeofString:str2]; //str1 中找str2
NSString *url =@"http://sjhasfjkfsjfhskfsbbbbb";
//在一个字符串中查找另一个字符串出现的手位置
NSRange range = [str rangeOfString:@"sj"];
//NSNotFound 是一个最大的long 无符号数
//如果查找不到 range.location 是一个最大的long 无符号数
//range.location 表示字符串首次出现的位置
//range.length 表示子字符串的长度
if (range.location != NSNotFound) {
NSLog(@"位置:%lu,长度:%lu",range.location,range.length);
}else{
NSLog(@"没有查找到");
}
-----------------字符串的截取和替换
1,从指定位置from开始(包含起始位置)到尾部
- (NSString *)substringFromIndex:(NSUInteger)from;
2,从字符串的开头一直截取到指定的位置to,不包含结束位置
- (NSString *)substringToIndex:(NSUInteger)to;
3,按照所给出的NSRange从字符串中截取子串
- (NSString *)substringWithRange:(NSRange)range;
NSString *str = @"http://www.baidu.com";
//1) 从xx位置开始,到最后结束(包含xx这个位置的字符)
NSString *str1 = [str substringFromIndex:5];
NSLog(@"str1 = %@",str1);
//2) 从开始位置,到xx位置结束(不包含xx这个位置)
NSString *str2 = [str substringToIndex:5];
NSLog(@"str2 = %@",str2);
//3) 截取一个范围 range
NSRange r1 = {3,4};
NSString *str3 = [str substringWithRange:r1];
NSLog(@"str3 = %@",str3);
4,字符串截取练习(获取itcast标签中的内容)
NSString *str = @"<itcast>乔布斯</itcast>";
// @">" loc+1
NSUInteger loc = [str rangeOfString:@">"].location + 1; //"传"得位置
// @"</" loc
NSUInteger len = [str rangeOfString:@"</"].location - loc; //要截取的字符的长度
// 构建 ruange
NSRange r2 = NSMakeRange(loc, len);
// 截取
NSString *subStr = [str substringWithRange:r2];
NSLog(@"subStr = %@",subStr);
5,字符串替换
str stringByReplacingOccurrencesOfString:@"源字符串中的内容" withString:@"要替换成新的内容"
NSString *str =@"asdfsdafasdfdasdfsa";
//把a替换成 *
NSString *newStr = [str stringByReplacingOccurrencesOfString:@"a" withString:@"*"];
NSLog(@"newStr = %@",newStr);
1、获取字符串的每个字符
- (NSUInteger)length; 返回字符串的长度(有多少个字符,无论中文字符、英文字符等等,一个字符就是一个字符)
- (unichar)characterAtIndex:(NSUInteger)index; 返回index位置对应的字符
NSString *str = @"ios.itcast.cn";
//1、获取字符串的长度
//调用字符串的length方法
//str.length ----> [str length];
NSLog(@"%ld",str.length);
//2、获取字符的每一个字符
unsigned long len = str.length;
for (int i=0; i<len; i++) {
unichar c = [str characterAtIndex:i];
printf("%c ",c);
}
三,字符串和其他数据类型转换
1,和基本数据类型的转换
- (double)doubleValue;
- (float)floatValue;
- (int)intValue;
- (BOOL)boolValue;
NSString *s1 = @"12"; //12+2
// s1+2;
NSString *s2 = @"2.3";
NSString *s3 = @"345.678";
//把字符串转换为 int类型
int n1 = [s1 intValue];
NSLog(@"n1 = %d",n1*34);
//字符串转换为float
float f1 = [s2 floatValue];
NSLog(@"f1 = %f",f1+3);
//把字符串转换为double类型
double d1 = [s3 doubleValue];
NSLog(@"d1 = %f",d1+3);
2,C字符串转OC 字符串
char *s = "zhangsanfeng";
NSString *str = [NSString stringWithUTF8String:s];
3,OC字符串转C字符串
NSString *str2 = @"zbz";
const char *s1 = [str2 UTF8String];
4,去除字符串首尾的空格
NSString *str = @" itc ast ";
NSCharacterSet *set =[NSCharacterSet whitespaceCharacterSet];
NSString *newStr = [str stringByTrimmingCharactersInSet:set];
四,通过NSURL读写字符串
1,URL介绍
URL的全称是Uniform Resource Locator(统一资源定位符).
URL是互联网上标准资源的地址.
2,URL格式
基本URL包含:协议、主机域名(服务器名称\IP地址)、路径
举例: http://ios.itcast.cn/ios/images/content_25.jpg
可以简单认为: URL == 协议头://主机域名/路径
3,通过URL读写字符串
构建URL
NSURL *url = [NSURL URLWithString:@"file:///Users/apple/Desktop/str.txt"];//需要手动加file://协议头
通过文件路径创建(默认就是file协议的)
NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/str.txt"];//自动会将file://协议头加上
NSString *str = @"$10000000";
1),写入字符串
[str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:nil]
2),读取字符串
NSString *str2 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
五,NSMutableString的介绍和使用
1, NSMutableString类继承NSString类
2,NSMutableString和NSString的区别:
NSString是不可变的, 里面的文字内容是不能进行修改的;
NSMutableString是可变的, 里面的文字内容可以随时更改;
NSMutableString能使用NSString的所有方法.(继承)
3, 可变和不可变的概念:
不可变: 指的是字符串在内存中占用的存储空间固定,并且存储的内容不能发生变化;
可变: 指的是字符串在内存中占用的存储空间可以不固定,并且存储的内容可以被修改;
4,使用:
NSMutableString *str2 = [NSMutableString stringWithFormat:@"Jack"];
1),添加:
[str2 appendString:@"&Rose"];//追加
[str appendFormat:@"http://www.baidu.com/%d",100];//格式化的添加字符串
2),在指定的位置插入一个字符串:
[str insertString:@"p://" atIndex:3];
3),删除一部分字符串:
[str deleteCharactersInRange:NSMakeRange(3, 4)];
4),替换字符串的一部分内容
[str replaceCharactersInRange:NSMakeRange(11, 5) withString:@"itcast"];
使用注意:
1),不能将不可变的字符串赋值给可变的字符串;
NSMutableString *str = [NSString stringWithFormat:@"abc"];
黑马程序员--Obbjective-C-Foundation框架中的NSString与NSMutableString的用法-我之整理
标签:
原文地址:http://www.cnblogs.com/yilizhijiaotianxiashao-yincaiersanshijianduo/p/4727500.html