Object-C学习札记 NSString常用方法

--实例化方法--------------

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

NSString *str = [[[NSString alloc] init] autorelease];

注意:在NSString 中存在自己的实例化和初始化的方法 例如:

NSString *str1 = [NSString stringWithCString:"new String" enconding: NSACIIStringEncoding];

NSString *str2 = [NSString alloc] initWithCString:"new String" enconding: NSACIIStringEncoding];

str1和str2两个对象是相同的。

--NSStringEncoding 中常用的字符编码----------------

NSASCIIStringEncoding

NSUTF8StringEncoding

NSUnicodeStringEncoding

--NSString创建实例----------------

带“@”符号的方法只能定义含有英文和数字的NSString实例,例如:

NSString *str = "Hello money~";

--生成含有中文的NSString方法-------------

//此方法自动释放内存

+ (id)stringWithCString:(const char*)cString encoding:(NSStringEncoding)encoding;

//进行alloc后进行初始化

- (id)initWithCString:(const char*)cString encoding:(NSStringEncoding)encoding;

例如:

NSString *string = [NSString stringWithCString:"您好" encoding:NSUTF8StringEncoding];

NSString *string = [[NSString alloc] initWithCString:"您好" encoding:NSUTF8StringEncoding];

--使用格式创建字符串-------------

+ (id)stringWithFormat:(NSString *)format...

- (id)initWithFormat:(NSString *)format...

例如:

NSString *str = "hello";

NSString *string = [NSString stringWithFormat:@"%@ world",str];

NSLog(string); 结果:hello world

--常用的替换符--------------

%@ NSString实例

%d,%D,%i 整数

%u,%U 无符号整数

%x 将无符号整数以十六进制小写字母显示

%X 将无符号整数以十六进制大写字母显示

%f 小数

%c 字符

%s C语言字符串

%% 显示%字符本身

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

NSRange

--NSRange的定义

typedef struct _NSRange

{

unsigned int location;

unsigned int length;

}NSRange;

NSMakeRange函数

--这个函数比较特殊 返回一个NSRange的对象。

NSMakeRanger(unsigned int location,unsigned int length);

例如:

NSRange range = NSMakeRanger(0,5);

NSLog(@"location is %d,length is %d",range.location,range.length);

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

计算字符串长度

- (unsigned int)length;

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

字符串连接,插入和删除

1、连接

- (NSString *)stringByAppendingString:(NSString *)string;

- (NSString *)stringByAppendingFormat:(NSString *)format...;

例如:

NSString *str1 = @"hello";

NSString *str2 = @"world";

NSString *str3 = [str1 stringByAppendingString:str2];

NSString *str4 = [str2 stringByAppendingFormat:@"%d...%d",10,20];

str4 --> world 10...20

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

NSMutableString的生成

NSString   + (id)string;  //生成空字符串的实例

+ (id)stringWithString:(NSString *)string;     //带自动释放内存

- (id)initWithString:(NSString *)string;

例如:

NSMutableString *string = [NSMutableString stringWithString:@"hello"];

2、追加字符串

NSMutableString

+ (void)appendString:(NSString *)string;

- (void)appendFormat:(NSString *)format...;

例如:

NSMutableString string = [NSMutableString string];

[string appendString:@"hello"];

[string appendString:@"money"];

[string appendString:@" and world"];

3、插入字符串

NSMutableString

+ (void)insertString:(NSString *)string atIndex:(unsigned)index;

从index位置插入字符串

例如:

NSMutableString *string = [NSMutableString stringWithString:@"Mac X"];

[string insertString:@"OS" atIndex:4];

string --> Mac OS X

4、删除字符串

NSMutableString

+ (void)deleteCharactersInRange:(NSRange)range;

例如:

NSMutableString *string = [NSMutableString stringWithString:@"Mac os"];

[string deleteCharactersInRange:NSMakeRanger(0,1)];

NSLog(string);

string -->ac os;

5、字符串比较

NSString

- (BOOL)isEqualToString:(NSString *)string;

6、比较前置串和后置串

NSString

- (BOOL)hasPrefix:(NSString *)string;

- (BOOL)hasSuffix:(NSString *)string;

例如:

NSString *str1 = @"Mac OS";

NSString *str2 = @"Mac Pro";

BOOL flag;

flag = [str1 hasPrefix:@"Mac"];  YES

flag = [str2 hasSuffix:@"OS"];      NO

7、字符串检索

NSString

//如果找到就返回范围,否则NSRange的location项被设置为NSNotFound

- (NSRange)rangeOfString:(NSString *)subString;

- (NSRange)rangeOfString:(NSString *)subString option:(unsigned)mask;

- (NSRange)rangeOfString:(NSString *)subString option:(unsigned)mask      range:(NSRange)range;

-----mask常用选项列表

NSCaseInsensitiveSearch          不区分字母大小写

NSLiteralSearch          对字符串进行字节单位的比较,一般可提高检索速度

NSBackwardsSearch     从范围的末尾开始检索

NSAnchoredSearch     仅检索制定范围的前部。忽略字符串中间的检索字符

例如:

NSString *string = @"hello world";

NSRange range = [string rangeOfString:@"he"];

if(range.location != NSNotFound)

{

NSLog(@" location=%d,length=%d",range.location,range.length);

}

8、截取字符串

NSString

- (NSString *)substringToIndex:(unsigned)index;     //返回字符串开头至index位的字符串 不包含索引位

- (NSString *)substringFromIndex:(unsigned)index; //返回字符串第index位至末尾的字符串 包含索引位

- (NSString *)substringWithRange:(NSRange)range;     //返回字符串中范围range内的字符串 包含索引位

例如:

NSString *string = [string substringWithRange:NSMakeRange(5,2)];

9、读取文本文件

NSString

+ (id)stringWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error     //自动释放内存

- (id)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error

例如:

NSString *string = [NSString stringWithContentsOfFile:@"/user/test/yw.txt" encoding:NSUTF8StringEncoding
error:&error];

if(string){}

10、输出文本文件

NSString

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError
**)error

//参数 atomically 暂时将文件保存到辅助文件中

//path

The file to which to write the receiver. If path contains a tilde (~) character, you must expand it with stringByExpandingTildeInPath
before invoking this method.

----下面是网上找的例子 感谢 @chenshizero

//扩展路径

NSString *Path = @"~/NSData.txt";

NSString *absolutePath = [Path stringByExpandingTildeInPath];

NSLog(@"absolutePath:%@",absolutePath);

NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);

//文件扩展名

NSString *Path = @"~/NSData.txt";

NSLog(@"Extension:%@",[Path pathExtension]);

时间: 2024-08-01 22:47:21

Object-C学习札记 NSString常用方法的相关文章

iOS学习笔记——NSString的常用方法

创建一个新字符串并将其设置为 path 指定的文件的内容,使用字符编码enc,在error上返回错误 + (id)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error; 创建一个新字符串并将其设置为 url 指定的内容,使用字符编码enc,在error上返回错误 + (id)stringWithContentsOfFile:(NSString *)path encod

Object C学习笔记25-文件管理(一)

在此篇文章中简单记录一下文件管理,在Object C中NSFileManager用于管理文件已经路径.在Object C中的文件路径可以是相对路径也可以是绝对路径.斜线"/"开头,斜线实际上就是一个目录,称为 根目录.字符(-)用作用户主目录的缩写.点" . "表示当前目录,两点"  .. "表示父目录. 一. 创建NSFileManager 对象 NSFileManager非常简单,可以使用如下方式来创建NSFileManager对象. NSS

Object C学习笔记26-文件管理(二)

上一篇简单的介绍了如何获取文件属性,删除,拷贝文件等,本文继续记录Object C中文件IO操作. 一. 获取文件的执行主目录 在Object C中提供了一个方法 NSHomeDirectory() 用于获得执行执行的主目录,使用如下代码测试: NSString *homePath=NSHomeDirectory(); NSLog(@"执行文件的主目录:%@",homePath); 通过以上代码可以正确的输出应用程序的执行目录,上一张也提到了文件的目录问题,这个和Windows系统的有

Object C学习初步

最近乘着项目不太紧张的时候,赶紧给自己冲了一下电.其实我自己最熟悉的平台应该是.net,所以当初上手windows phone的话是很快,我记得当初是一边跟着项目进展,一边自己开始学习前台的XAML语言以及页面的布局,所以一个项目跟下来的话windows phone平台也就差不多了. 早先就有过学习ios的想法,应该iphone实在是太酷了,感觉开发ios比windows phone更加有成就感.但是前前后后一直在往后推迟,因为ios的同事们一直给我灌输的思想就是oc语言还有挺难学的,相比较c#

Java Object类学习笔记

看下Api文档的一些说明 public class Object Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implement the methods of this class. Since: JDK1.0 从JDK1.0就已经存在的元老类,类结构的根,所有类的父类,所有类都实现了这个类的方法,包含

Java 学习札记(三)免安装版TomCat中tomcat6w.exe的运行

1.使用环境 很多时候我们用的是官网的解压免安装版的Tomcat,相比安装Tomcat除了少了安装步骤以外还少了tomcat6w.exe运行所需要的环境变量,所以一般Java开发免安装版的已经足够使用了,但是如果部署服务的时候我们不可能只运行startup.bat文件,我们需要新建一个服务并可以通过tomcat6w.exe启动和关闭服务. 2.无法运行tomcat6w.exe (1)提示错误: 运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the serv

SQL菜鸟学习札记(一)

刚开始学SQL,从最基础的语句开始写,用一个LOL数据库做实验.目前使用的工具是MySQL Workbench,感觉比较顺手,界面没花多久时间就读懂的差不多了,所以目前就使用这个工具来做SQL的学习了. (1)多条件查询,然后修改值.因为我这里是需要编辑原来是0值的行,所以多条件查询中使用的是 A = 0为条件搜索. 刚刚提到的0值行就是这个样子,刚开始Copy行的时候遇到了很奇葩的错误--有些行必须存在默认值才能将数据进行表与表之间的Copy和Paste,所以就给默认值放了个0值. (2)仔细

【学习札记-类加载器】

个人学习整理,如有不足之处,请不吝指教.转载请注明:@CSU-Max 类加载器 简介 类加载器(class loader)用来加载 Java 类到 Java 虚拟机中.一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件).类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例.每个这样的实例用来表示一个 Java 类.通过此实例的 new

JasperReport学习札记6-JRXML的标签

原文源于:http://langhua9527.iteye.com/blog/402317 JasperReport学习笔记6-JRXML的标签1.<jasperReport>根元素包括很多属性pageWidth,pageHeight,leftMargin,rightMargin,topMargin,bottomMargin,orientation,whenNoDataType,isTitleNewPage,isSummaryNewPage orientation表示是横着放,还是竖着放,默认