OC   API库常见之函数

NSString类型

1.initWithFormat

- (instancetype)initWithFormat:(NSString *)format

用于返回一个带有格式控制符的字符串,格式控制符里的内容被替代.

例子:

int n = 17;CGFloat m = 99.9;

//str 是一个地址,  内容存放于堆区

NSString * str = [[NSString alloc]initWithFormat:@"蓝鸥%d班的平均成绩是:%.2f",n, m ];

NSLog(@"%@", str);NSLog(@"%p", str);

输出结果:蓝鸥17班的平均成绩是:99.90

2.stringWithFormat

+ (instancetype)stringWithFormat:(NSString *)format

例子:

NSString * string = [NSString stringWithFormat:@"%d班教室共%d人", 17, 38];

NSLog(@"%@", string);

结果:17班教室共38人

这个函数出现的频率很高   ,是一个类方法,返回一个带有格式控制符的字符串

  • + stringWithFormat:
    类方法,返回一个autorelease的NSString实例,不用手动Release,在自动释放池中会自动释放。
  • initWithFormat:
    实例方法,返回一个自己Alloc申请内存的NSString实例,根据OC内存管理黄金法则,管杀管埋,它则需要自己手动Release。

3.length

求一个字符串的长度, 返回值是NSUInteger

例子:

NSString * str = @"河南17班";

NSUInteger len = [str length];

NSLog(@"%lu", len);

打印结果:5

4.stringByAppendingString

- (NSString *)stringByAppendingString:(NSString *)aString

将两个字符串拼接,并返回一个新字符串;

例子:

NSString * str1 = @"河南";

NSString * str2 = @"蓝鸥科技";

NSString * newstr = [str1 stringByAppendingString:str2];

NSLog(@"newstr = %@", newstr);

打印结果:

newstr = 河南蓝鸥科技

5.stringByAppendingFormat

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

将原有字符串与给定的字符串拼接,给定字符串带有格式控制符,返回一个新的字符串

例子:

int n = 17;

NSString * str = @"蓝鸥";

NSString * newstr = [str stringByAppendingFormat:@"河南%d班",n];

NSLog(@"%@", newstr);

打印结果:

蓝鸥河南17班

6.substringFromIndex

- (NSString *)substringFromIndex:(NSUInteger)anIndex

从某个位置开始到结束,求子串儿,返回一个新的字符串

例子:

NSString * str = @"lanoukeji";

NSString * getstr = [str substringFromIndex:1];

NSLog(@"%@", getstr);

打印结果:

anoukeji

7.substringToIndex

- (NSString *)substringToIndex:(NSUInteger)anIndex

从开始到某个位置(不包括该位置),求子串儿,返回一个新字符串.

例子:

NSString * str = @"lanoukeji";

NSString * newstr = [str substringToIndex:2];

NSLog(@"%@", newstr);

打印结果:la

8.substringWithRange

- (NSString *)substringWithRange:(NSRange)aRange

根据给的范围,从原字符串取子串,并返回一个新的字符串

NSString * str = @"lanoukeji";

NSRange range = {1,7};   //定义NSRange结构体

NSString * newstr = [str substringWithRange:range];

NSString * newstr1 = [str substringWithRange:NSMakeRange(1, 8)];

NSLog(@"%@", newstr1);

NSLog(@"%@", newstr);

打印结果:

anoukeji

anoukej

9.componentsSeparatedByString

- (NSArray *)componentsSeparatedByString:(NSString *)separator

//根据传入的字符串把原串分割成几部分,返回一个数组

例子:

NSString * str = @"WWW.baidu.com.www.sohu.com";

NSArray * substring = [str componentsSeparatedByString:@"."];

NSLog(@"%@", substring);

打印结果:

(

WWW,

baidu,

com,

www,

sohu,

com

)

10.rangeOfString

- (NSRange)rangeOfString:(NSString *)aString

求字串在原串的范围,并返回一个NSRange类型的结构体(起始位置,长度)

例子:

NSString * str = @"lanoukejilanou";

NSRange range = [str rangeOfString:@"lanou"];

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

打印结果:

0,5

11.stringByReplacingOccurrencesOfString

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)targetwithString:(NSString *)replacement

会将原串里的所有出现某字符串替换成新串,返回一个新字符串

例子:

NSString * str = @"你是我的小呀小苹果!";

NSString * newstr = [str stringByReplacingOccurrencesOfString:@"小" withString:@"大"];

NSLog(@"%@", newstr);

打印结果:

你是我的大呀大苹果!

12.hasPrefix:

- (BOOL)hasPrefix:(NSString *)aString

判断原字符串首部和给的字符串是否一致,返回一个BOOL值

例子:

NSString * str = @"http://www.baidu.com";

NSString * str1 = @"htp://";

BOOL a = [str hasPrefix:str1];

NSLog(@"%@",a ? @"YES" : @"NO");

打印结果:

NO

13.hasSuffix:

- (BOOL)hasSuffix:(NSString *)aString

判断原字符串的末尾和给的字符串是否一致,返回一个BOOL值

NSString * str = @"http://www.baidu.com";

NSString * str1 = @".com";

BOOL a = [str hasSuffix:str1];

NSLog(@"%@", a ? @"YES" : @"NO");

打印结果:YES

14.isEqualToString

- (BOOL)isEqualToString:(NSString *)aString

比较两个字符串是否相等,返回一个BOOL值

例子;

NSString * str = @"呵呵呵";

NSString * str1 = @"呵呵";

if ([str isEqualToString:str1]) {

NSLog(@"相等");

}

else NSLog(@"不相等");

打印结果:不相等

15.lowercaseString

例子:

NSString * str = @"DSADasdAS";

//返回一个新字符串  ,将所有的大写变成小写

NSString * newstr = [str lowercaseString];

NSLog(@"%@", newstr);

//uppercaseString   变成大写

NSString * newstr1 = [str uppercaseString];

NSLog(@"%@", newstr1);

//capitalizedString   将一段话每个单词的首字母变成大写

NSString * str3 = @"i love iphone ios";

NSString * newstr2 = [str3 capitalizedString];

NSLog(@"%@", newstr2);

打印结果:

dsadasdas

DSADASDAS

I Love Iphone Ios

16.integerValue

字符串转成基本类型

例子:

NSString * str1 = @"22";

NSString * str2 = @"11";

NSInteger num = [str1 integerValue] + [str2 integerValue];

NSLog(@"%ld", num);

NSString * str3 = @"1.2";

NSString * str4 = @"2.3";

float a = [str3 floatValue] + [str4 floatValue];

NSLog(@"%.2f", a);

BOOL b = [str1 boolValue];

NSLog(@"%@", b ? @"YES" : @"NO");

打印结果:

2015-01-14 21:48:19.189 OC 一月14号[3233:303] 33

2015-01-14 21:48:19.192 OC 一月14号[3233:303] 3.50

2015-01-14 21:48:19.192 OC 一月14号[3233:303] YES

NSMutableString 类型(继承自NSString)

创建一个可以修改内容的字符串(存放于堆区)

17.appendString

在原字符串中拼接

NSMutableString * string = [NSMutableString stringWithFormat:@"蓝鸥"];

[string appendString:@"科技"];

NSLog(@"%@", string);

打印结果:蓝鸥科技

18.deleteCharactersInRange:

- (void)deleteCharactersInRange:(NSRange)aRange

删除原字符串里的内容

[string deleteCharactersInRange:NSMakeRange(1, 1)];

NSLog(@"%@", string);

打印结果:蓝科技

19.insertString:atIndex:

- (void)insertString:(NSString *)aStringatIndex:(NSUInteger)anIndex

在原字符串指定下标开始添加内容

[string insertString:@"鸥" atIndex:1];

NSLog(@"%@", string);

打印结果:蓝鸥科技

20.replaceCharactersInRange:

- (void)replaceCharactersInRange:(NSRange)aRangewithString:(NSString *)aString

将原字符串里指定下标开始,将n个字节替换成给的字符串

NSMutableString * string1 = [NSMutableString stringWithFormat:@"文艺青年"];

[string1 replaceCharactersInRange:NSMakeRange(0, 2) withString:@"213"];

NSLog(@"%@", string1);

打印结果:

213青年

21.setString:

将原字符串的内容设为..

[string1 setString:@"$$$"];

NSLog(@"%@", string1);

打印结果:$$$

22.compare:

- (NSComparisonResult)compare:(NSString *)aString

字符串比较   返回值若为-1是升序,1是降序

NSString * str1 = @"abc";

NSString * str2 = @"abd";

NSComparisonResult result = [str1 compare:str2];

NSLog(@"%ld", result);

打印结果:-1

NSArray特点

1. 数组里只能存对象

2. 通过下标来索引数据

3. 有序集和

NSArray类型

23.initWithObjects:

创建一个数组,并将对象传入进去,   nil用来标记字符串结束

NSArray * array = [[NSArray alloc] initWithObjects:@"A",@"B",@"C",@"D", nil];

NSLog(@"%@", array);

类方法 arrayWithObjects

NSArray * array1 = [NSArray arrayWithObjects:@"张三",@"李四",@"王五", nil];

NSLog(@"%@", array1);

打印结果:

2015-01-14 22:16:12.364 OC 一月14号[3282:303] (

A,

B,

C,

D

)

2015-01-14 22:16:12.409 OC 一月14号[3282:303] (

"\U5f20\U4e09",

"\U674e\U56db",

"\U738b\U4e94"

)

汉字显示的是编码

24.objectAtIndex:

- (id)objectAtIndex:(NSUInteger)index

根据下标找出数组中对应的元素

例子;

NSArray * array = [NSArray arrayWithObjects:@"01", @"水电费", @"11", nil];

NSArray * str = [array objectAtIndex:1];

NSLog(@"%@", str);

打印结果:水电费

//****************************重写description********************************

//重写从父类继承过来的description 方法,这个方法用于使用%@打印

//返回什么样的字符串,使用%@打印该类对象,就会打出来什么内容

//***********************************************************************************//

- (NSString *)description

{

return [NSString stringWithFormat:@"%@ %@ %ld", _name ,_sex, _age];

}

Person * person = [[Person alloc]initWithName:@"张三" sex:@"男" age:20];

Person * person1 = [[Person alloc]initWithName:@"李四" sex:@"男" age:20];

Person * person2 = [[Person alloc]initWithName:@"王六" sex:@"女" age:20];

//   NSLog(@"%@,%@,%@", person, person1, person2);

NSArray * array = [NSArray arrayWithObjects:person,person1, person2, nil];

NSLog(@"%@", array);

Person * per = [array objectAtIndex:1];

NSLog(@"%@", per);

//25.获得数组元素的个数

NSUInteger count = [array count];

NSLog(@"%lu", count);

//    分别将数组里的元素()打印出来

for (int i = 0; i < [array count]; i++) {

Person * p = [array objectAtIndex:i];

NSLog(@"%@", p);

//等价于   NSLog(@"%@", [array objectAtIndex:i]);

}

//26.取出第一个或最后个一元素   firstObject

NSLog(@"%@", [array firstObject]);

NSLog(@"%@", [array lastObject]);

//containsObject:

Person * p = [[Person alloc]initWithName:@"张三" sex:@"男" age:20];

//  27. 判断一个对象是否在数组里,  后面跟具体对象,前面跟数组名  containsObject

NSLog(@"%@", [array containsObject:person] ? @"YES" : @"NO");

NSLog(@"%@", [array containsObject:p] ? @"YES" : @"NO");

//28.找到一个对象在数组里的下标

//indexOfObject:

NSLog(@"%ld", [array indexOfObject:person1]);

//2判断数组是否相等(对象,顺序)

//isEqualToArray:

Person * p1 = [[Person alloc]initWithName:@"张三" sex:@"男" age:70];

Person * p2 = [[Person alloc]initWithName:@"李四" sex:@"男" age:20];

Person * p3 = [[Person alloc]initWithName:@"王六" sex:@"女" age:20];

NSArray * array1 = [NSArray arrayWithObjects:p1,p2,p3, nil];

NSArray * array2 = [NSArray arrayWithObjects:p1,p3,p2, nil];

NSLog(@"两个数组是否相等%@", [array1 isEqualToArray:array2] ? @"YES" : @"NO");

打印结果:

2015-01-14 22:25:08.772 OC 一月14号[3315:303] (

"\U5f20\U4e09 \U7537 20",

"\U674e\U56db \U7537 20",

"\U738b\U516d \U5973 20"

)

2015-01-14 22:25:08.774 OC 一月14号[3315:303] 李四 男 20

2015-01-14 22:25:08.775 OC 一月14号[3315:303] 3

2015-01-14 22:25:08.775 OC 一月14号[3315:303] 张三 男 20

2015-01-14 22:25:08.775 OC 一月14号[3315:303] 李四 男 20

2015-01-14 22:25:08.776 OC 一月14号[3315:303] 王六 女 20

2015-01-14 22:25:08.776 OC 一月14号[3315:303] 张三 男 20

2015-01-14 22:25:08.777 OC 一月14号[3315:303] 王六 女 20

2015-01-14 22:25:08.777 OC 一月14号[3315:303] YES

2015-01-14 22:25:08.777 OC 一月14号[3315:303] NO

2015-01-14 22:25:08.778 OC 一月14号[3315:303] 1

2015-01-14 22:25:08.778 OC 一月14号[3315:303] 两个数组是否相等NO

时间: 2024-10-11 07:22:52

OC   API库常见之函数的相关文章

OC &#160; API库常见之函数(二)

NSMutableArray   可变数组 //initWithCapacity: 创建一个数组 // - (instancetype)initWithCapacity:(NSUInteger)numItems NSMutableArray * array  = [[NSMutableArray alloc]initWithCapacity:1];//1表示刚开始给数组分配一个对象大小的内存,当数组已经有一个对象时,再放一个对象时,数组会自动添加1个对象大小的内存,(n代表追加的内存个数). 

VB程序逆向反汇编常见的函数(修改版)

VB程序逆向常用的函数 1) 数据类型转换: a) __vbaI2Str    将一个字符串转为8 位(1个字节)的数值形式(范围在 0 至 255 之间) 或2 个字节的数值形式(范围在 -32,768 到 32,767 之间). b)__vbaI4Str   将一个字符串转为长整型(4个字节)的数值形式(范围从-2,147,483,6482,147,483,647) c)__vbar4Str  将一个字符串转为单精度单精度浮点型(4个字节)的数值形式 d)__vbar8Str   将一个字符

BCB 查看动态库中有什么函数

切换至 tdump.exe 所在目录: C:\Documents and Settings\Administrator>cd D:\Program Files\CodeGear\RAD Studio\6.0 \bin D:\Program Files\CodeGear\RAD Studio\6.0\bin>tdump.exe D:\Program\CKD\05191800\F nthex32.dll > d:\Fnthex32.txt 输出结(红色字体为函数名): Exports fro

16位汇编 多文件 intel汇编 编译器masm5.0 调用子程序库即静态库的自定义函数 WINDOWS

;以下是16位汇编 创建静态库,并调用静态库中的函数 ;多文件汇编格式 ;编译方法(此处用的是masm 5.0,如果是其他的编译器,有可能不能编译) ;第一种,编译方法 ;1.masm main.asm  生成.obj文件 ;2.masm lib.asm  生成.obj文件 ;3.link main.obj lib.obj 生成.exe文件 ;第二种,编译方法 ;1.masm main.asm  生成.obj文件 ;2.masm 16lib.asm  生成.obj文件 ;3.lib 16lib.

C库文件操作函数

标准库中的函数,类型以及宏在下面的标准头文件中定义: <assert.h> <float.h> <math.c> <stdarg.h> <stdlib.h> <ctype.h> <limits.h> <setjmp.h> <stddef.h> <string.h> <errno.h> <locale> <signal.h> <stdio.h>

Zookeeper C API 指南三(回调函数)(转)

2013-02-21 12:54 by Haippy, 9237 阅读, 0 评论, 收藏, 编辑 接上一篇<Zookeeper C API 指南二(监视(Wathes), 基本常量和结构体介绍)>,本文重点介绍 Zookeeper C API 中的各种回调函数. Zookeeper C API 中各种回调函数简介 在具体介绍 Zookeeper C API 之前,首先介绍一下 Zookeeper C API 中的各种回调函数的原型: 监视函数(watch function)原型 typede

0709 C语言常见误区----------函数指针问题

1.函数指针的定义 对于函数 void test(int a, int b){ // } 其函数指针类型是void (* ) (int , int), 注意这里第一个括号不能少, 定义一个函数指针,void (* pfunc)(int , int) ,其中pfunc就是函数指针类型, 它指向的函数类型必须是返回值为void, 参数为两个int的. 2.函数指针赋值 函数指针可以直接用函数名赋值,pfunc = test, 或者 pfunc = &test: 3.调用函数指针 pfunc(3, 4

使用类的成员函数作为API定时器的回调函数

有时候,我们在使用API定时器时,需要使用类的成员函数作为其回调函数,但是,编译器为了保护成员函数,编译是不能通过的.那么我们怎么才能使用类的成员函数作为API定时器的回调函数呢?我们可以嵌入一段汇编代码来绕过编译器的检查.举个例子: 假设我们一个类的成员函数定义为void CALLBACK EXPORT CTestDlg::TimerProc,那么我们在使用API定时器时如果直接这么写是编译通不过的: ::SetTimer(m_hWnd,1,1000,TimerProc); 使用嵌入一段汇编代

Windows API中几个函数的总结

[DllImport("User32.dll", EntryPoint = "FindWindow")] public static extern IntPtr FindWindow(String className, String captionName); [DllImport("User32.dll", EntryPoint = "FindWindowEx")] public static extern IntPtr F