OBJ-C NSString + NSRange + NSMutableString 学习笔记

来源:互联网 发布:软件测试经典案例 编辑:程序博客网 时间:2024/05/17 03:12
=================================================================
                NSString + NSRange + NSMutableString
=================================================================


什么是框架?


框架是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合,以便使研发程序变得更容易。在OS X下的Mac操作系统中大约有80个框架为所有程序开发奠定基础,这个框架就是Foundation框架。


Cocoa 是 Foundation 和 AppKit;
Cocoa Touch 是 Foundation 和 UIKit;


------------------------------------------------------


URL


URL的全称是Uniform Resource Locator(统一资源定位符);
URL是互联网上标准资源的地址;
互联网上的每个资源都有一个唯一的URL,它包含的信息指出资源的位置;
根据一个URL就能找到唯一的一个资源;




基本URL包含协议、主机域名、路径;
可以简单认为:URL == 协议头://主机域名/路径


-----------------------------------------------------------------


NSString字符串比较


如果要比较两个字符串大小的话,可以使用compare方法;
compare方法返回的结果有三种:


NSOrderAscending: a<b; 返回值长整型,为-1
NSOrderDecending: a>b; 返回值长整型,为1
NSOrderSame: a == b;   返回值长整型,为0


-------------------------------------------------------------


其他的比较代码
[str compare:str1 options: NSLiteralSearch](完全比较,区分大小写,默认)
[str compare:str1 options:NSCaseInsensitiveSearch](不区分大小写)
[str compare:str1 options:NSCaseInsensitiveSearch](比较字符串的字符个数)


---------------------------------------


==是不能判断字符串是否相等,因为如果相同的字符串内容,但是存储在不同的存储区,结果还是不相等;


可以用 [str isEqualToString: str1];返回的是BOOL类型----1为相等。


---------------------------------------------------------


NSString 前后缀检查及搜索


[url hasPrefix:@"http://"] 返回的是BOOL类型,检查的是字符串的前缀
[imageName hasSuffix:@".jpg"] 检查的是字符串的后缀


-----------------------------------------------------------


字符串的查找


例:


NSString *str = @"wefjliosjfwliosjiew";
NSString *str1 = @"ios";
        
NSRange range = [str rangeOfString:str1];
        
NSLog(@"length:%lu location  %lu",range.length,range.location);


length为3,location为5.


---------------------------------------------------------------


字符串截取


1.从XX位置开始,截取到最后结束:


  NSString *str1 = [str substringFromIndex:5];(包含xx这个位置)


2.从开始位置,到XX位置结束:


  NSString *str2 = [str substringToIndex:5];(不包含xx这个位置)


3.截取一个范围 range:


  NSRange r1 = NSMakeRange(3, 4);
  NSString *str3 = [str substringWithRange:r1];


-----------------------------------------------------------------------


字符串的替换


NSString *replace = [str stringByReplacingOccurrencesOfString:@"a" withString:@"*"];


表示用“*”替换掉“a”;


---------------------------------------------------------------------


获取字符串的每个字符


-(NSUInteger)length;
返回字符串的长度(无论中英文,都是一个字符);


-(unichar)characterAtIndex:(NSUInteger)index;
返回index位置对应的字符;


--------------------------------------------------------------------


NSString 的其他用法


int a = [str intValue];  //可以把str指向的字符串转化成整型;


-------------------------------------------------------------------


NSMutableString 和 NSString的区别


NSString是不可变的,里面的文字内容是不能进行修改的,因为存在常量区,而常量区是只读的;
NSMutableString是可变的,里面的文字内容可以随时更改;
NSMutableString是继承NSString的,其所有方法都能使用;




不可变:指的是字符串在内存中占用的存储空间固定,并且存储的内容不能发生变化;
可变:指的是字符串在内存中占用的存储空间可以不固定,并且存储的内容可以被修改;


----------------------------------------------------------------------------------


对NSMutableString类型的字符串的操作


1.[str appendString:@"Jack"]; 在原字符串的后面添加字符串
2.[str appendFormat:@"Jack%d",100]; 格式化添加字符串
3.[str deleteCharactersInRange:NSMakeRange(2, 3)]; 删除字符串一部分内容,无返回值
4.[str insertString:@"LOVE" atIndex:1]; 在指定的位置插入字符串
5.[str replaceCharactersInRange:NSMakeRange(1, 2) withString:@"TTTT"];从包括第一位在内之后  连续的2位实行替换,替换内容为TTTT;
0 0