NSString NSArray

int main(int argc, const char * argv[]) {

//

//

// SDK

// Software Development Kit

// 软件开发

// API

// Application Programming Interface

// 应用程序接口

/*

不可变字符串 Nsstring

创建之后内容和长度不可改变

*/

// 创建字符串

// NSString *str1 = [NSString alloc]initWithString:@"刘庆春"];

// NSString *str2 = [NSString stringWithString:@"微信"];

// 字面量创建字符串

// 字面量也是语法糖 syntax sugar 简化字符串的创建过程

NSString *str3 = @"renren";

//NSString *str4 = @"nihao";

//NSString *str5 = @"zhangsan";

//NSString *str6 = @"xuexue";

NSLog(@"%@",str3);

// 字符串长度

NSLog(@"length:%lu",str3.length);

// 取子串

NSString *str4 = @"iPhonePlus";

// fromIndex 从当前下表处取到字符串结尾 包含字符串下表

NSString *str5 = [str4 substringFromIndex:4];

// toIndex 从字符串开头取到某个下标结束  不包含下标

NSString *str6 = [str4 substringToIndex:4];

NSLog(@"%@",str6);//iPho

NSLog(@"%@",str5);//nePlus

// NSRange r = {3,4};// C 语言结构体定义

NSString *str8 = [str4  substringWithRange:NSMakeRange(3, 4)];

NSLog(@"str8:%@",str8);//str8:oneP

// toIndex

// Withrange

// 拼接字符串

NSString *str9 = [str4 stringByAppendingString:@"5288"];

NSLog(@"str9:%@",str9);//iPhonePlus5288

// 替换字符串

NSString *str10 = [str9  stringByReplacingOccurrencesOfString:@"Plus" withString:@"7s"];

NSLog(@"str10:%@",str10);// iPhone7s5288

// 字符串相等判断

NSString *str11 = @"123";

NSString *str12 = @"123";

if (str11 == str12) {

NSLog(@"俩个字符串对象地址相同");//俩个字符串对象地址相同

}

if ([str11 isEqualToString:str11]) {

NSLog(@"俩个字符串对象的内容相同");

}

// 判断前缀和/后缀

if ([str4 hasPrefix:@"i"]) {

NSLog(@"有前缀");

}

if ([str4 hasSuffix:@"s"]) {

NSLog(@"有后缀");

}

//有前缀

//    2015-02-05 11:50:30.834 OC_NSSing NSArray[1016:54765] 有后缀

// 字符串比较  (第一个不相同的字符串的比较)

// 定义一个比较结果变量 用来存字符串比较结果

NSString *str13 = @"iPhone6";

NSString *str14 = @"iPhone5s";

NSComparisonResult result =[str13 compare:str14];

if (result == NSOrderedAscending) {

NSLog(@"升序");

}else if(result == NSOrderedDescending)

{

NSLog(@"降序");//降序

} else{

NSLog(@"相同");

}

/*

万能转换公式

*/

NSString *str15 = [NSString stringWithFormat:@"%@ lol %ld %f",str13, 100L ,12.4];

NSLog(@"%@",str15);

// iPhone6 lol 100 12.400000

/*

练习给定一个图片文件名,判断字符串中是否以

“png”结尾,如果是就替换成“jpg”,如果 不是,就拼接”.jpg”

*/

NSString *p1 = @"pic.png";

NSString *p2 = @"photo";

if ([p1 hasSuffix:@"png"]) {

NSString *p3 = [p1 stringByReplacingOccurrencesOfString:@"png" withString:@"jpg"];// pic.jpg

NSLog(@"%@",p3);

}else

{

NSString *p4 = [p1 stringByAppendingString:@".jpg"];

NSLog(@"%@",p4);// photo.jpg

}

//    if (![p2 hasSuffix:@"png" ]) {

//        NSString *p5 = [p2 stringByAppendingString:@".jpg"];

//        NSLog(@"%@",p5);

//

//    }else

//    {

//        NSString *p6 = [p6 stringByReplacingOccurrencesOfString:@"png" withString:@"jpg" ];

//        NSLog(@"%@",p6);

//    }

//

/*

可变的字符串 NSMutableString

*/

// 创建可变字符串

NSMutableString *mStr = [NSMutableString string];

// 拼接

[mStr appendString:@"iPhone"];

// 插入

[mStr insertString:@"Android" atIndex:2];

NSLog(@" mStr : %@",mStr);// iPAndroidhone

// 删除

[mStr deleteCharactersInRange:NSMakeRange(2, 7)];

//[mStr deleteCharactersInRange:NSMakePoint(2, 7)];

NSLog(@" mStr : %@",mStr);// mStr : iPhone

/*

可变不可变的区别

不可变对象的操作都是产生了新的对象 可变对象都是再源对象基础上进行操作

*/

/*

不可变数组 NSArray   数组中只能存对象  集合类 数据类

*/

// 创建数组对象

NSArray *arr1 = [NSArray arrayWithObjects:@"数组",@"数",@"c", nil];

NSLog(@"arr1 :%@",arr1);// 打不出汉字

// 打印不出汉子

//元素个数

NSLog(@"count : %ld",arr1.count);// ount : 3

// 数组访问

NSLog(@"object:%@",[arr1 objectAtIndex:1]);// object:数

// 遍历数组

NSLog(@"======");

for (NSInteger i = 0; i < arr1.count; i++) {

NSLog(@"%@",[arr1  objectAtIndex:i]);

}

/*

可变数组  NSMutableArray

*/

// 可变数组对象

// 通常创建空容器 用来存放数据对象

NSMutableArray *mArr = [NSMutableArray array];

// 添加元素  添加再数组最后

[mArr addObject:@"lol"];

Person *p = [[Person alloc]init];

// 插入元素  按照下标位置添加元素

[mArr insertObject:p atIndex:0];

// 删除和替换

[mArr removeObjectAtIndex:1];

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

[mArr addObject:@"abc"];

[mArr addObject:@"2432"];

[mArr addObject:@"789"];

[mArr addObject:@"chun"];

// 替换

[mArr replaceObjectAtIndex:2 withObject:@"asdm"];

// 交换

[mArr exchangeObjectAtIndex:1 withObjectAtIndex:3];

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

// 练习

//    1、使用可变数组管理所有书籍(定义Book类,包含书 名和价格)。

//    2、数组可以添加、删除书籍。 3、可以从数组根据书名查找书籍,并修改书籍的价格 4、展示所有书籍清单(书名)。

// 创建书本对象

Book *b1 = [[Book alloc]initWithBookName:@"读者" price:12];

Book *b2 = [[Book alloc]initWithBookName:@"nihao" price:13];

// 创建容器数组

NSMutableArray *aa1 = [NSMutableArray array];

// 把书本对象添加再数组中

[aa1 addObject:b1];

[aa1 addObject:b2];

NSLog(@"%@",aa1);

// 查找

for (NSInteger i = 0; i < aa1.count; i++) {

Book *b = [aa1 objectAtIndex:i];

if ([b.bookName isEqualToString:@"nihao"]) {

b.price = 100;

}

}

NSLog(@"%@",aa1);

for (NSInteger i = 0; i < aa1.count; i++) {

NSLog(@"%@",[[aa1 objectAtIndex:i] bookName]);

}

/*

NSNumber NSValue  基础类型转换

int ->

*/

//int-> int

NSNumber *num1 = [NSNumber numberWithInt:100];

NSLog(@"%@",num1);// 对象

NSLog(@"%d",[num1 intValue]);// 非对象

// 结构体转换成对象

NSRange r = NSMakeRange(3, 4);

NSValue *value1 = [NSValue valueWithRange:r];

NSLog(@"%@",value1);

// NSValue - > NSRange

NSLog(@"%ld",[value1 rangeValue].length); // value: 结构体转换成对象

return 0;

}

@implementation Book

- (instancetype)initWithBookName:(NSString *)bookName price:(NSInteger)price

{

//self = [super init];

//if (self) {

[self setBookName:bookName];

[self setPrice:price];

// }

return self;

}

+ (instancetype)bookWithBookName:(NSString *)bookName price:(NSInteger)price

{

Book *p1 = [[Book alloc]initWithBookName:bookName price:price];

return p1;

}

- (NSString *)description

{

return [NSString stringWithFormat:@"name:%@,price:%ld", [self bookName],[self price]];

}

@end

时间: 2024-11-13 08:53:04

NSString NSArray的相关文章

NSData NSDate NSString NSArray NSDictionary 相互转化

//    NSData  NSDate NSString NSArray NSDictionary json NSString *string = @"hello word"; NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",nil

NSString NSArray和可变字符串、数组的用法

// 使用实例方法创建NSString对象 NSString *string1 = [[NSStringalloc]initWithFormat:@"姓名流年"]; NSLog(@"%@", string1); NSString *string2 = [[NSStringalloc]initWithFormat:@"Ming"]; NSLog(@"%@", string2); NSString *string3 = [[NSS

NSData NSDate NSString NSArray NSDictionary 相互转换

// NSData NSDate NSString NSArray NSDictionary json NSString *string = @"hello word"; NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",nil]; N

继承NSString,NSArray 怎么写

今天在进行一个字符串测试的时候,自定义了一个继承自NSString的类,但是出现了一些问题,查阅官方文档后得到了下面这些结论 在Objective-C中,对于NSString.NSArray等一些系统的基础类,苹果公司不推荐继承创建新类的,要想给它们扩展功能只能给它们添加新的categroy(类目). 但是直接继承的话,也是可行的,只是会出现各种问题 以NSString为例 首先,创建一个NSString的子类 BFString,不添加任何方法和属性 直接创建一个BFString的实例对象,是没

OC4-foundation NSString NSArray

目标:1.如何查询API 习惯, 2.foundation 框架,nsstring nsarry nsnumber NSdictionary, 即时通讯:融云 环信. 1.API application 应用程序:interface 开放接口 (应用程序编程接口) 接口就是一系列的操作方法, 查询API作用: 能够知道都有些那些方法,每个属性的意义,每个方法的作用,这个类的继承关系. 查询方法:command +鼠标左键,点击类名 只能查看属性和方法: (2)alt/option  +鼠标左键,

NSString,NSArray和NSDictionary to JSON标准格式字符串

#import <Foundation/Foundation.h> @interface NSString (HXAddtions) +(NSString *) jsonStringWithDictionary:(NSDictionary *)dictionary; +(NSString *) jsonStringWithArray:(NSArray *)array; +(NSString *) jsonStringWithString:(NSString *) string; +(NSStr

Obj-c4[NSString, NSArray]

#import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) {    @autoreleasepool { //        //常量字符串NSString//        NSString * str = @"蓝欧";//        //NSLog(@"%p",str);//0x100001038//

Fouandation(NSString ,NSArray,NSDictionary,NSSet) 中常见的理解错误区

Fouandation 中常见的理解错误区 1.NSString //快速创建(实例和类方法) 存放的地址是 常量区 NSString * string1 = [NSString alloc]initWithString:@“123”]; NSString * string3 = [NSString stringWithString:@“123”]; //格式化方法创建   存放地址是堆区 NSString * string2 = [NSString alloc]initWithFormat:@

OBC: NSString 与 NSArray 互转

1. NSString 拆分成 NSArray NSString *_string = @"1,2,3,4,5";NSArray *_arr = [_string componentsSeparatedByString:NSLocalizedString(@",", nil)]; 2. NSArray 转为 NSString NSArray *_arr = [[NSArray alloc] initWithObjects:@"1", @"