OC第四天-NSString,NSArray,NSNumber,数组遍历
2015-06-03 23:09
357 查看
NSString、NSArray、NSNumber、苹果帮助文档、值对象
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { // NSString *我 = [[NSString alloc]init]; // 我 = @"fsdfsfsfsfsfs"; // NSLog(@"我 = %@",我); //NSString *str1 = [[NSString alloc] initWithString:@"wwwwww"]; NSString *s = [ NSString stringWithFormat:@"123我asdfads"]; // 用自定义的初始化方法initWithString来初始化一个字符串对象,如果参数是常量区字符串,则直接返回常量区的地址;如果参数是一个字符串对象,先将字符串对象中的值拷贝到堆区,然后返回堆区地址; NSString *str1 = [[NSString alloc] initWithString:s]; // 获取字符串长度,计算的是Unicode字符的个数,一个Unicode字符是unsiged short 类型,占两个字节 NSUInteger strLength =[str1 length]; NSLog(@"strlength = %lu",strLength); // 获取子字符串的方法:从第几个位置开始直到字符串的结束 NSString *str2 = [str1 substringFromIndex:3];//从第几个位置开始知道字符串的结束 NSLog(@"str2 = %@",str2); NSString *str3 = [str1 substringToIndex:4];//从字符串的开始到第几个的位置结束 NSLog(@"str3 = %@",str3); // 定义一个结构体变量 NSRange range = NSMakeRange(2, 4); // 根据结构体变量来获取子字符串,开始位置是结构体变量的location,长度是结构体变量length NSString *str4 = [str1 substringWithRange:range]; NSLog(@"str4 = %@",str4); // 字符串拼接方法 NSString *str5 = [str1 stringByAppendingString:@"你好"]; NSLog(@"str5 = %@",str5); // NSString *str6 = [str1 stringByAppendingFormat:@"dgdgdgdgdgdfgdfgdg"]; NSLog(@"str6 = %@",str6); // 替换字符串 NSString *string = @"hello world"; NSString *string1 = [string stringByReplacingOccurrencesOfString:@"hello" withString:@"你好"]; NSLog(@"string1 = %@",string1); // 判断两个字符串是否相等,判断的两个字符串的内容绝对相等,大小写,字符串长度都是一致的 NSString *s1 = @"1231"; NSString *s2 = @"1232"; NSLog(@"%d",[s1 isEqualToString:s2]); // 字符串比较 NSLog(@"compare = %ld", (long)[s1 compare:s2]); // 练习1 // NSString *png = @"12345.png"; // 判断字符串结尾是否相同,即 判断字符串是否以 XXX 结尾 if ([png hasSuffix:@"png"]) { png = [png stringByReplacingOccurrencesOfString:@"png" withString:@"jpg"]; } else { png = [png stringByAppendingString:@"jpg"]; } NSLog(@"png = %@",png); // 可变字符串 // 创建不可变字符串对象, 如果用stringWithString:就是直接将常量区内存中的内容拷贝到堆区, 然后返回堆区地址 NSMutableString *mutableStr = [NSMutableString stringWithString:@"12345"]; NSLog(@"AAA = %p, mu = %p",@"12345",mutableStr); // 可变字符串的拼接 [mutableStr appendString:@"67890"]; NSLog(@"mutableStr = %@",mutableStr); // 可变字符串的插入 在第5个位置插入asd [mutableStr insertString:@"asd" atIndex:5]; NSLog(@"mu = %@",mutableStr); // 可变字符串的删除 从第2个位置开始删除4个字符 NSRange delRange = NSMakeRange(2, 4); [mutableStr deleteCharactersInRange:delRange]; NSLog(@"mu = %@",mutableStr); // 练习2 NSMutableString *mutablePng = [NSMutableString stringWithFormat:@"2345.png"]; if ([mutablePng hasSuffix:@"png"]) { //mutablePng = [mutablePng stringByReplacingOccurrencesOfString:@"png" withString:@"jpg"]; NSRange muRange = [mutablePng rangeOfString:@"png"]; [mutablePng replaceCharactersInRange:muRange withString:@"jpg"]; }else { [mutablePng appendString:@".jpg"]; } NSLog(@"mutablePng = %@",mutablePng); // 通过便利构造器方法来创建一个不可变数组对象,结尾的nil表示结束 NSArray *array = [NSArray arrayWithObjects:@"3" ,@"4",@"5",nil]; NSLog(@"array = %@",array); // 获取数组元素的个数 NSLog(@"count = %ld",[array count]); // 获取数组某一个位置的值 NSLog(@"indexobjct = %@",[array objectAtIndex:1]); // 可变数组 // 通过元素个数来创建可变数组 NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:1]; // 给可变数组添加元素 [mutableArray addObjectsFromArray:array]; NSLog(@"mutableArray = %@",mutableArray); // 插入 [mutableArray insertObject:@"20" atIndex:0]; NSLog(@"mutableArray = %@",mutableArray); // 删除 [mutableArray removeObjectAtIndex:1]; NSLog(@"dellar = %@", mutableArray); // 数组的遍历 // 快速枚举遍历 for (NSString *ss in array) { NSLog(@"ss = %@",ss); } // 创建一个NSNumber对象 NSNumber *num1 = [NSNumber numberWithInt:10]; // 获取NSNumber对象的数值 NSLog(@"num1 = %d",[num1 intValue]); // NSValue // 用便利构造器 创建一个NSValue对象 NSValue *value = [NSValue valueWithRange:NSMakeRange(10, 20)]; NSLog(@"value = %@",value); // 通过NSRange获取结构体变量的值 NSRange ra = [value rangeValue]; NSLog(@"ra = %lu",ra.location); int a = 20; NSValue *intValue = [NSValue valueWithPointer:&a]; NSLog(@"intValue = %@",intValue); int *p = [intValue pointerValue]; NSLog(@"pointer = %d",*p); return 0; }
相关文章推荐
- 文件遍历排序函数
- Lua 学习笔记之C API 遍历 Table实现代码
- Erlang中遍历取出某个位置的最大值代码
- C++实现图的邻接矩阵存储和广度、深度优先遍历实例分析
- C++实现图的邻接表存储和广度优先遍历实例分析
- php遍历目录方法小结
- 一个目录遍历函数
- php遍历删除整个目录及文件的方法
- PHP遍历文件夹与文件类及处理类用法实例
- PHP遍历XML文档所有节点的方法
- php中使用key,value,current,next和prev函数遍历数组的方法
- C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法
- C#使用foreach遍历哈希表(hashtable)的方法
- php递归遍历多维数组的方法
- C#使用yield关键字让自定义集合实现foreach遍历的方法
- C#使用foreach语句简单遍历数组的方法
- Javascript遍历Html Table示例(包括内容和属性值)
- JavaScript遍历table表格中的某行某列并打印其值
- Javascript的数组与字典用法与遍历对象的属性技巧
- 使用jquery prev()方法找到同级的前一个元素