一,NSString的创建

 NSString*str=@" a string ";//直接创建一个字符串常量,这样创建出来的字符串不需要释放内存

NSLog(@"%@",str );

NSString *str2=[[NSString alloc]init];

str2=@"a string two";

NSLog(@"%@",str2);

[str2 release];

NSString *str3=[[NSStringalloc]initWithString:@"hello"];

NSLog(@"%@",str3);

[str3 release];

NSString *str4=[[NSStringalloc]initWithUTF8String:"utf8string"];//C 语言类型的字符串

NSLog(@"%@",str4);

[str4 release];

NSString *str5=[[NSStringalloc]initWithFormat:@"int=%i, float=%.2f",3,4.5f];

NSLog(@"%@",str5);

[str5 release];

str5=[NSStringstringWithFormat:@"paradigm=%i",5];//静态方法不需要释放内存

NSLog(@"%@",str5);

   NSString *str5;

NSString *path=@"/Users/lanou/Desktop/a.txt";

NSError *error;

str5=[NSStringstringWithContentsOfFile:path  encoding:NSUTF8StringEncodingerror:&error];//读取文件内容

if (error==nil) {

NSLog(@"%@ ",str5  );

}

NSURL *url=[NSURLURLWithString:@"file:///Users/lanou/Desktop/a.txt"];

str5=[NSStringstringWithContentsOfURL:url  encoding:NSUTF8StringEncodingerror:&error];//读取文件内容

if (error==nil) {

NSLog(@"%@ ",str5);

}

NSError * error;

NSURL *url=[NSURLURLWithString:@"http://www.baidu.com"];//获取网页文件内容

NSString* str5=[NSStringstringWithContentsOfURL:url encoding:NSUTF8StringEncodingerror:&error];

if (error==nil) {

NSLog(@"%@",str5);

}

else{

NSLog(@"%@error",error);

}

///字符串写入文件并读取出来

void stringExport()

{

NSString *path=@"/Users/lanou/Desktop/a.txt";

NSString *str=@"write to file";

NSError *error;

[str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];,如果文件不存在将创建文件,如果文件路径不存在就会报错.

if (error) {

NSLog(@"error %@",error);

}

else

{

NSLog(@"successifully");

NSString *fileContent=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];

if (error) {

NSLog(@"error %@",[error localizedDescription]);//localizedDescription主要错误

}else NSLog(@"%@",fileContent);

}

}

字符串的比较

BOOL b1=[@"hello"isEqualToString:@"hello"];//判断两个字符串的内容是否相同

NSLog(@"%i",b1);

NSComparisonResult b2= [@"4"compare:@"Hell0"];//比较两个字符串的大小

b2的取值范围是三个枚举值:NSOrderedAscending = -1,  NSOrderedSame, NSOrderedDescending

NSComparisonResult result= [@"st"caseInsensitiveCompare:@"St"];//忽略字符大小写来比较

字符串的搜索

NSString *str=@"string";

NSLog(@"%i",[str hasPrefix:@"std"]);//是否以**开头

NSLog(@"%i",[str hasSuffix:@"ngg"]);//是否以**结尾

NSString *str=@"string";

NSRange range=[str rangeOfString:@"ring"];//找到字符串的位置

NSLog(@"%@",NSStringFromRange(range));

range=[str rangeOfString:@"tr"options:NSBackwardsSearch];//从后往前搜索

range=[str rangeOfString:@"tr" options:NSBackwardsSearch range:range];//在范围内搜索

字符串截取

NSString *str=@"strtring";
    NSRange range=NSMakeRange(2, 2);
    NSLog(@"%@",[str substringWithRange:range]);//从第二个字符开始到后面的2个字符
    NSLog(@"%@",[str substringToIndex:2]);//从第一个到第二个前面的一个
    str=@"1,2,3,4,5";
  NSArray *arrs=  [str componentsSeparatedByString:@","];//从字符串中分割元素到数组中
    for (int i=0; i<arrs.count; i++) {
        NSLog(@"%@",arrs[i]);
    }

NSLog(@"%@",[arrs objectAtIndex:1]);//获取第index处的元素

// NSString 与路径
    NSMutableArray *components=[NSMutableArray array];//把数组中的元素拼接成路径形式的字符串
    [components addObject:@"he"];
    [components addObject:@"ll"];
     [components addObject:@"ow"];
    NSLog(@"%@",[NSString pathWithComponents:components]);

NSArray *component=[path pathComponents ];//再把路径分解成数组
    NSLog(@"%@",component);

-(BOOL)isAbsolutePath//是否为绝对路径
    -(NSString *)lastPathComponent//获取最后一个路径
    -(NSString *)stringByDeletingByDeletingLastPathComponent//删除最后一个目录
    -[(NSString *)stringByAppendingPathComponent:(NSString *)str//在路径后面加一个目录

课堂笔记要点

-initWithFormat:

-initWithContentsOfFile:encoding:error:

-initWithContentsOfURL:encoding:error:

获取字符串长度-length

-UTF8String把字符串转化为C的字符串

-stringByAppendingFormat:  字符串拼接

分割字符串

NSString *str=@"strtring";

NSLog(@"%@",[str substringFromIndex:2]);//从第二个字符开始到最后

NSLog(@"%@",[str substringToIndex:2]);//从第一个到第二个前面的一个

字符串拓展名

NSString *str=@"test.txt";
   NSLog(@"%@",[str pathExtension]);//获取路径拓展名
    NSLog(@"%@",[str stringByDeletingPathExtension]);//获取删除拓展名之后的路径

NSLog(@"%@",[str stringByAppendingPathExtension:@"exe"]);//添加拓展名

课堂笔记要点

-componentsSeparatedByString: 字符串分割返回值是数组

-substringFromIndex:

-substringWithRange:

-substringToIndex:

字符串替换

-stringByReplacingOCccurrencesOfString:withString:

-compare:

-hasPrefix:

-hasSuffix:

-isEqualToString:

二,字符串

可变字符串NSMutableString

-appendFormat:

-setString:  设置字符串

重点:

数组创建

NSArray *array=[NSArray array];//声明数组1
        array=[NSArray arrayWithObject:@"a"];//声明数组2,初始化一个元素
        array= [NSArray arrayWithObjects:@"a",@"b", nil];//声明数组3,初始化很多元素
        [array count];//数组元素个数

数组的简单使用       
NSArray *array=[NSArray arrayWithObjects:@"a",@"b",@"c", nil];
        if ([array containsObject:@"a"]) {//数组中是否包含元素a
            NSLog(@"array has a!");
        }

NSLog(@"%@",[array lastObject]);//获取数组中最后一个元素
        NSLog(@"%@",[array objectAtIndex:1]);//获取特定位置的元素
        NSLog(@"%zi",[array indexOfObject:@"a"]);
        //快速遍历
        for (id item in array) {
            NSLog(@"%@",item);
        }
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {//使用block遍历数组,stop控制停止
            NSLog(@"%@%zi",obj,idx);
            if (idx==1) {
                *stop=YES;
            }
        }];
数组排序
 NSArray *arr=[array arrayByAddingObject:@"cc"];//向数组中添加元素并返回一个新数组
        NSLog(@"%@",arr);

NSArray *arr=[array arrayByAddingObjectsFromArray:[NSArray arrayWithObjects:@"aaa",@"bbb", nil]];
        NSLog(@"%@",arr);

NSArray *array=[NSArray arrayWithObjects:@"a",@"b",@"c", nil];
       NSLog(@"%@",[array componentsJoinedByString:@"-"]);//使用分隔符把数组改为字符串

//返回一个排序好的数组,原来的数组内容顺序不变
        NSArray *arr=[array sortedArrayUsingSelector:@selector(compare:)];//指定元素的排序方法
        NSLog(@"%@",arr);

//NSString 是不可变的,不恩能够删除或添加字符.它的子类 NSMutableString,称为可变字符串
    //创建可变字符串的常用方法:
    -(id)initWithCapacity:(NSUInteger)capacity
    -[(id)stringWithCapacity:(NSUInteger)capacity//capacity只是分配的容量提高操作速度,如果不够用会自动添加

+arrayWithObjects:   -initWithObjects:  使用频率最高

+arrayWithContentsOfFile:  从文件读数组

查询数组

-count 数组元素个数,通常用于循环语句 for(int i=0;i<[arr count];i++);

-objectAtIndex: 通常用于循环内部,查询.id obj=[arr objectAtIndex:i];

-firstObject    -lastObject

数组比较

-isEqualToArray:  返回bool值

NSMutableArray使用最多

-addObject:

-removeObjectAtIndex:

-removeAllObjects

-removeLastObject

Getting Numeric Values:

-doubleValue ...

NSDictionary不可变添加,删除,修改元素

初始化常用initWithObjectsAndKeys:(id),....nill;

-count 个数

-isEqualToDictionary:

-objectForKey:

key不存在就添加,存在就覆盖,setObject:forKey:

-removeAllObjects

-removeObjectforKey:

NSSet 集合

NSSet,不可变集合

可以存放多个对象,以nil表示结束,对象在set中存储是无序的.

trim的实现

    1. NSString *string = @" spaces in front and at the end ";
    2. NSString *trimmedString = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
    3. NSLog(@"%@",trimmedString) ;

Foundation--NSString , array and Dictionary的更多相关文章

  1. [Swift通天遁地]五、高级扩展-(6)对基本类型:Int、String、Array、Dictionary、Date的扩展

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  2. Linq在Array,List,Dictionary中的应用

    Linq在Array,List,Dictionary中的应用 今天在实际工作中需要对array,list,dictionary进行排序,试一试linq,发现非常好用,代码如下: using Syste ...

  3. C# List、Array、Dictionary之间相互转换

    Array转换为List List转换为Array Array转Dictionary Dictionary转Array List转Dictionary Dictionary转List IQueryab ...

  4. Array 、 Dictionary 、 Object 3大数据结构 以及 for ... in for each的研究

    Array:存储方式-------索引存储 (要求key是大于等于0的整数) Dictionary.Object:存储方式---------索引存储 区别:可以说它们的 key 都 对应 各自的引用, ...

  5. asp.net mvc 后台怎么接受前端返回的array list dictionary

    参考了别人的文章,我这样尝试去写: 数据源:memberInRoles var memberInRoles= {}; for(var i=0;i<sureOptions.length;i++){ ...

  6. Swift与Objective-C交互

    在同一个工程中是可以同时使用Swift和OC的,但不可以同时出现在同一个文件中. OC调用Swift相关信息的方法 在***.m文件中导入工程名-Swift.h即可. 如工程名为ABC,则在需要使用S ...

  7. [OC Foundation框架 - 4] NSString的导出

      void exportString() { NSString *str = @"Hello, 坑爹"; NSString *path = @"/Users/hello ...

  8. [OC Foundation框架 - 2] NSString 的创建

    A. 不可变字符串 void stringCreate() { //Don't need to release memory by this way NSString *str1 = @"S ...

  9. AS3.0杂记——Dictionary、Object与Array

    来源:http://blog.csdn.net/m_leonwang/article/details/8811829 Object.Array与Dictionary都是关联数组,就是用“键”来索引存储 ...

随机推荐

  1. Vhost.conf 范例

    NameVirtualHost *:80 <VirtualHost *:80> ServerName haofei.com DocumentRoot "E:/test/" ...

  2. ssh 连接不同无线网且IP以及用户名都相同

    问题现场及解析 用OpenSSH的人都知ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts. 当下次访问相同计算机时,OpenSSH会核对公钥. ...

  3. mybatis: 多对多查询[转]

    加入3个包 log4j-1.2.17.jar mybatis-3.3.0.jar mysql-connector-java-5.1.8.jar log4j需要配置 log4j.properties # ...

  4. WPF中的Style(风格,样式)

    作者: 周银辉  来源: 博客园  发布时间: 2009-02-27 15:04  阅读: 6698 次  推荐: 0   原文链接   [收藏]   在WPF中我们可以使用Style来设置控件的某些 ...

  5. codeforces 555c// Case of Chocolate// Codeforces Round #310(Div. 1)

    题意:直角边为n的网格巧克力,一格为一块,选择斜边上一点,从左或上吃,直到吃到空气,称为一次操作.给出几个操作,问各能吃几块.如果x是当前要吃的横坐标,在已经吃过的中找x1>=x的第一个x1,即 ...

  6. PC端,移动端分离,如何结合??

    <script type="text/javascript"> function mobile_device_detect(url) { var thisOS = na ...

  7. bzoj4919 大根堆

    考虑二分求序列LIS的过程. g[i]表示长度为i的LIS最小以多少结尾. 对于每个数,二分寻找插入的位置来更新g数组. 放到树上也是一样,额外加上一个合并儿子的过程. 发现儿子与儿子直接是互不影响的 ...

  8. 2-18,19 搭建MySQL主从服务器并并通过mysql-proxy实现读写分离

    MySQL主从服务器 实现方式: MySQL  REPLICATION Replication可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave) 默认情况下这种 ...

  9. thinkphp3.2导出

    public function test() { set_time_limit(0); ini_set('memory_limit', '500M'); //导入PHPExcel类库,因为PHPExc ...

  10. UVA-242 Stamps and Envelope Size (DP)

    题目大意:给一些邮票的面值组合,找出在限定的张数范围内能组合出连续最大值得那个组合. 题目分析:状态可以这样定义:dp(k,u)表示u能否用k张邮票组合成.状态转移方程很显然了. 代码如下: # in ...