数字对象、字符串(16.5.10)
2016-05-10 21:51
429 查看
Foundation框架介绍
框架是由许多类、方法、函数以及文档按照一定的规则组织起来的集合,以便开发者更方便、迅速的开发程序。
Cocoa程序编写主要用到2个框架Foundation和UIKit.
Foundation框架主要定义了一些基础的类,如数字对象NSNumber,字符串对象NSString等供开发者来使用。 Foundation框架的类都继承NSObject.
UIKit主要是一些用户界面设计的类,如UILabel\UIButton等。
NSNumber数字对象:
C语言中的数据类型,不能调用对象的方法,如有时候需要把数据类型放进数组里面,就要把基本数据类型转成数字对象(Cocoa中数组只能存放对象,不能存放基本数据类型),OC中提供了数字对象NSNumber可以将基本数据类型包装成对象。
// NSNumber
数字对象的初始化
int number = 10;
NSNumber *intNumber = [NSNumbernumberWithInt:number];
NSLog(@"%@", intNumber);
BOOL isBool =
YES;
NSNumber *boolNumber = [NSNumbernumberWithBool:isBool];
NSLog(@"%@", boolNumber);
float floatNum = 3.14;
NSNumber *floatNumber = [NSNumbernumberWithFloat:floatNum];
NSLog(@"%@", floatNumber);
double doubleNum = 3.1345;
NSNumber *doubleNumber = [NSNumbernumberWithDouble:doubleNum];
NSLog(@"%@", doubleNumber);
NSInteger inter = 12;
NSNumber *integerNum = [NSNumbernumberWithInteger:inter];
NSLog(@"%@", integerNum);
char c = 'A';
NSNumber *charNumber = [NSNumbernumberWithChar:c];
NSLog(@"%@", charNumber);
//数字对象还原成基本数据类型
int aNumber = [intNumber
intValue];
NSLog(@"%d", aNumber);
BOOL aBool = [boolNumber
boolValue];
NSLog(@"%d", aBool);
float aFloat = [floatNumber
floatValue];
NSLog(@"%f", aFloat);
double aDouble = [doubleNumber
doubleValue];
NSLog(@"%f", aDouble);
NSInteger aInter = [integerNum
integerValue];
NSLog(@"%ld", aInter);
char aChar = [charNumber
charValue];
NSLog(@"%c", aChar);
//比较两个数字对象大小
//(1)判断两个数字对象是否相等
NSNumber *num1 = [NSNumbernumberWithInt:10];
NSNumber *num2 = [NSNumbernumberWithInt:12];
if ([num1 isEqualToNumber:num2])
{
NSLog(@"两个数字对象相等");
}
//(2)判断两个数字对象的大小
int result = [num1
compare:num2];
if (result > 0)
{
NSLog(@"%@大于%@", num1, num2);
}
else if (result < 0)
{
NSLog(@"%@小于%@", num1, num2);
}
else
{
NSLog(@"%@等于%@", num1, num2);
}
NSString 字符串:
在 Foundation框架中,提供了NSString类,用于处理字符串对象。在c语言中字符串用一对引号“”表示,OC是建立在c语言之上的(c基础之上添加了面向对象的内容)。
所以,为了区别,OC语言字符串以@“”表示,如@“hello,word”。
//字符串的创建
//创建一个字符串常量
NSString *string =
@"hello,字符串常量";
NSLog(@"%@", string);
//创建一个空的字符串
NSString *string2 = [[NSStringalloc]
init];
NSLog(@"%@", string2);
//或者
NSString *string3 = [NSStringstring];
NSLog(@"%@", string3);
//快速创建一个字符串
NSString *string4 = [[NSStringalloc]
initWithString:@"hello,string"];
NSLog(@"%@", string4);
//快速创建一个格式化字符串
int number1 = 2;
NSString *string6 = [[NSStringalloc]
initWithFormat:@"%d", number1];
NSLog(@"%@", string6);
float number2 = 2.4;
NSString *string7 = [NSStringstringWithFormat:@"%f",
number2];
NSLog(@"%@", string7);
//比较字符串
//测试字符串内容是否相同
NSString *str1 = [[NSString alloc] initWithFormat:@"test"];
NSString *str2 = [[NSString alloc] initWithFormat:@"test"];
if ([str1 isEqualToString:str2])
{
NSLog(@"字符串相等");
}
//测试字符串是否为同一个对象
NSString *str3= [[NSString alloc] initWithFormat:@"test"];
NSString *str4 = [[NSString alloc] initWithFormat:@"test"];
if (str3 != str4)
{
NSLog(@"两个字符串不是同⼀个对象");
}
//比较字符串的大小
NSString *str5 = [[NSString alloc] initWithFormat:@"a"];
NSString *str6= [[NSString alloc] initWithFormat:@"b"];
int result = [str5 compare:str6];
if (result > 0)
{
NSLog(@"%@ 大于 %@", str5, str6);
}
else if (result < 0)
{
NSLog(@"%@ 小于 %@", str5, str6);
}
else
{
NSLog(@"%@ 等于 %@", str5, str6);
}
//求字符串的长度
NSString *myString = [[NSString alloc] initWithFormat:@"string length"];
int length = [myString length];
NSLog(@"字符串%@的长度是%d",
myString, length);
//字符串转换
NSString *hello = @"hello WORLD";
NSLog(@"%@", [hello uppercaseString]);
// 全部大写
NSLog(@"%@", [hello lowercaseString]);
// 全部小写
NSLog(@"%@", [hello capitalizedString]);
// ⾸字⺟大写,其他字母小写
//将字符串转换成基本数据类型
NSString *str = @"1";
NSLog(@"%d", [str boolValue]);
// 转换成BOOL类型
NSString *str2 = @"6";
NSLog(@"%d", [str2 intValue]);
// 转换成整型
NSString *str3 = @"2.467";
NSLog(@"%f, %f", [str3 floatValue],[str3 doubleValue]);//
转换成浮点型
//将字符串转换为数组
NSString *str9 = @"One Two Three Four";
NSArray *array = [str9 componentsSeparatedByString:@" "];
NSLog(@"%@", array);
int count = [array count];
//数组的总个数
for (int i = 0; i < count; i++)
{
NSString *str = array[i];
NSLog(@"%@", str);
}
//字符串是否包含前缀或后缀
NSString *targetStr = @"hello, friends! welcom to china";
if ([targetStr hasPrefix:@"hello"])//是否包含前缀
{
NSLog(@"字符串%@包含前缀%@",
targetStr, @"hello");
}
if ([targetStr hasSuffix:@"china"])//是否包含后缀
{
NSLog(@"字符串%@包含后缀%@",
targetStr, @"china");
}
//获取字符串的指定字符
char c = [targetStr characterAtIndex:0];
char d = [targetStr characterAtIndex:4];
char e = [targetStr characterAtIndex:targetStr.length-1];
NSLog(@"%c--%c--%c", c, d, e);
//字符串编码转换
NSString *str22 = @"hello, world";
constchar *s = [str22 UTF8String];//字符串转码成UTF8String格式,const表示字符串常量
for (int i = 0; *(s+i) != '\0'; i++)
{
printf("%c ", *(s+i));
}
printf("\n");
NSString *newStr = [[NSString alloc] initWithUTF8String:s];//初始化一个UTF8String格式的字符串
//或者
newStr = [NSString stringWithUTF8String:s];
NSLog(@"%@", newStr);
//字符串的截取与拼接
//截取字符串
NSString *str10 = [NSString stringWithFormat:@"abcdef"];
NSString *str11 = [str10 substringToIndex:2];//
从开始位置(包括开始位置的字符)截取长度为2的字符串
NSString *str12 = [str10 substringFromIndex:2];//截取所索2(包括所索2对应的字符)以后的所有字符串
NSLog(@"str10=%@, str11=%@", str11, str12);
//根据范围截取字符串
NSRange rang; // NSRange rang = NSMakeRange(3, 2);
rang.location = 3;
rang.length = 2;
NSString *str13 = [str10 substringWithRange:rang];
NSLog(@"str13=%@", str13);
//拼接字符串对象
NSString *str1 = @"1", *str2 =
@"2";
NSString *str33 = [[NSString alloc] initWithFormat:@"%@%@", str1, str2];
NSLog(@"%@", str33);
NSString *str3 = [str1 stringByAppendingFormat:@"%@", str2];
NSLog(@"%@", str3);
NSString *str4 = [str1 stringByAppendingString:str2];
NSLog(@"%@", str4);
/查询字符串对象
NSString *link = @"hello,yida hulian";
NSRange range = [link rangeOfString:@"Yida"];
if(range.location != NSNotFound)//NSNotFound表示无限大
{
NSLog(@"找到了!位置在%ld,子串长度为%ld",
range.location, range.length);
}
else
{
NSLog(@"没找到!");
}
//可变字符串对象
//添加字符串
NSMutableString *str55 = [NSMutableString stringWithString:@"字符串"];
[str55 appendString:@"可变"];
[str55 appendFormat:@"flag=%d", 100];
NSLog(@"%@", str55);
//插入字符串
NSMutableString *str5 = [NSMutableString stringWithString:@"字符串"];
[str5 insertString:@"可变" atIndex:0];
[str5 insertString:@"akgo"
atIndex:str5.length];
NSLog(@"%@", str5);
//删除字符串
NSMutableString *str6 = [NSMutableString stringWithString:@"字符符串"];
[str6 deleteCharactersInRange:NSMakeRange(1, 2)];
NSLog(@"str6=%@", str6);
//替换字符串
NSMutableString *str7 = [NSMutableString stringWithString:@"字符串"];
[str7 replaceCharactersInRange:NSMakeRange(0, 2) withString:@"msn"];
NSLog(@"str7=%@", str7);
框架是由许多类、方法、函数以及文档按照一定的规则组织起来的集合,以便开发者更方便、迅速的开发程序。
Cocoa程序编写主要用到2个框架Foundation和UIKit.
Foundation框架主要定义了一些基础的类,如数字对象NSNumber,字符串对象NSString等供开发者来使用。 Foundation框架的类都继承NSObject.
UIKit主要是一些用户界面设计的类,如UILabel\UIButton等。
NSNumber数字对象:
C语言中的数据类型,不能调用对象的方法,如有时候需要把数据类型放进数组里面,就要把基本数据类型转成数字对象(Cocoa中数组只能存放对象,不能存放基本数据类型),OC中提供了数字对象NSNumber可以将基本数据类型包装成对象。
// NSNumber
数字对象的初始化
int number = 10;
NSNumber *intNumber = [NSNumbernumberWithInt:number];
NSLog(@"%@", intNumber);
BOOL isBool =
YES;
NSNumber *boolNumber = [NSNumbernumberWithBool:isBool];
NSLog(@"%@", boolNumber);
float floatNum = 3.14;
NSNumber *floatNumber = [NSNumbernumberWithFloat:floatNum];
NSLog(@"%@", floatNumber);
double doubleNum = 3.1345;
NSNumber *doubleNumber = [NSNumbernumberWithDouble:doubleNum];
NSLog(@"%@", doubleNumber);
NSInteger inter = 12;
NSNumber *integerNum = [NSNumbernumberWithInteger:inter];
NSLog(@"%@", integerNum);
char c = 'A';
NSNumber *charNumber = [NSNumbernumberWithChar:c];
NSLog(@"%@", charNumber);
//数字对象还原成基本数据类型
int aNumber = [intNumber
intValue];
NSLog(@"%d", aNumber);
BOOL aBool = [boolNumber
boolValue];
NSLog(@"%d", aBool);
float aFloat = [floatNumber
floatValue];
NSLog(@"%f", aFloat);
double aDouble = [doubleNumber
doubleValue];
NSLog(@"%f", aDouble);
NSInteger aInter = [integerNum
integerValue];
NSLog(@"%ld", aInter);
char aChar = [charNumber
charValue];
NSLog(@"%c", aChar);
//比较两个数字对象大小
//(1)判断两个数字对象是否相等
NSNumber *num1 = [NSNumbernumberWithInt:10];
NSNumber *num2 = [NSNumbernumberWithInt:12];
if ([num1 isEqualToNumber:num2])
{
NSLog(@"两个数字对象相等");
}
//(2)判断两个数字对象的大小
int result = [num1
compare:num2];
if (result > 0)
{
NSLog(@"%@大于%@", num1, num2);
}
else if (result < 0)
{
NSLog(@"%@小于%@", num1, num2);
}
else
{
NSLog(@"%@等于%@", num1, num2);
}
NSString 字符串:
在 Foundation框架中,提供了NSString类,用于处理字符串对象。在c语言中字符串用一对引号“”表示,OC是建立在c语言之上的(c基础之上添加了面向对象的内容)。
所以,为了区别,OC语言字符串以@“”表示,如@“hello,word”。
//字符串的创建
//创建一个字符串常量
NSString *string =
@"hello,字符串常量";
NSLog(@"%@", string);
//创建一个空的字符串
NSString *string2 = [[NSStringalloc]
init];
NSLog(@"%@", string2);
//或者
NSString *string3 = [NSStringstring];
NSLog(@"%@", string3);
//快速创建一个字符串
NSString *string4 = [[NSStringalloc]
initWithString:@"hello,string"];
NSLog(@"%@", string4);
//快速创建一个格式化字符串
int number1 = 2;
NSString *string6 = [[NSStringalloc]
initWithFormat:@"%d", number1];
NSLog(@"%@", string6);
float number2 = 2.4;
NSString *string7 = [NSStringstringWithFormat:@"%f",
number2];
NSLog(@"%@", string7);
//比较字符串
//测试字符串内容是否相同
NSString *str1 = [[NSString alloc] initWithFormat:@"test"];
NSString *str2 = [[NSString alloc] initWithFormat:@"test"];
if ([str1 isEqualToString:str2])
{
NSLog(@"字符串相等");
}
//测试字符串是否为同一个对象
NSString *str3= [[NSString alloc] initWithFormat:@"test"];
NSString *str4 = [[NSString alloc] initWithFormat:@"test"];
if (str3 != str4)
{
NSLog(@"两个字符串不是同⼀个对象");
}
//比较字符串的大小
NSString *str5 = [[NSString alloc] initWithFormat:@"a"];
NSString *str6= [[NSString alloc] initWithFormat:@"b"];
int result = [str5 compare:str6];
if (result > 0)
{
NSLog(@"%@ 大于 %@", str5, str6);
}
else if (result < 0)
{
NSLog(@"%@ 小于 %@", str5, str6);
}
else
{
NSLog(@"%@ 等于 %@", str5, str6);
}
//求字符串的长度
NSString *myString = [[NSString alloc] initWithFormat:@"string length"];
int length = [myString length];
NSLog(@"字符串%@的长度是%d",
myString, length);
//字符串转换
NSString *hello = @"hello WORLD";
NSLog(@"%@", [hello uppercaseString]);
// 全部大写
NSLog(@"%@", [hello lowercaseString]);
// 全部小写
NSLog(@"%@", [hello capitalizedString]);
// ⾸字⺟大写,其他字母小写
//将字符串转换成基本数据类型
NSString *str = @"1";
NSLog(@"%d", [str boolValue]);
// 转换成BOOL类型
NSString *str2 = @"6";
NSLog(@"%d", [str2 intValue]);
// 转换成整型
NSString *str3 = @"2.467";
NSLog(@"%f, %f", [str3 floatValue],[str3 doubleValue]);//
转换成浮点型
//将字符串转换为数组
NSString *str9 = @"One Two Three Four";
NSArray *array = [str9 componentsSeparatedByString:@" "];
NSLog(@"%@", array);
int count = [array count];
//数组的总个数
for (int i = 0; i < count; i++)
{
NSString *str = array[i];
NSLog(@"%@", str);
}
//字符串是否包含前缀或后缀
NSString *targetStr = @"hello, friends! welcom to china";
if ([targetStr hasPrefix:@"hello"])//是否包含前缀
{
NSLog(@"字符串%@包含前缀%@",
targetStr, @"hello");
}
if ([targetStr hasSuffix:@"china"])//是否包含后缀
{
NSLog(@"字符串%@包含后缀%@",
targetStr, @"china");
}
//获取字符串的指定字符
char c = [targetStr characterAtIndex:0];
char d = [targetStr characterAtIndex:4];
char e = [targetStr characterAtIndex:targetStr.length-1];
NSLog(@"%c--%c--%c", c, d, e);
//字符串编码转换
NSString *str22 = @"hello, world";
constchar *s = [str22 UTF8String];//字符串转码成UTF8String格式,const表示字符串常量
for (int i = 0; *(s+i) != '\0'; i++)
{
printf("%c ", *(s+i));
}
printf("\n");
NSString *newStr = [[NSString alloc] initWithUTF8String:s];//初始化一个UTF8String格式的字符串
//或者
newStr = [NSString stringWithUTF8String:s];
NSLog(@"%@", newStr);
//字符串的截取与拼接
//截取字符串
NSString *str10 = [NSString stringWithFormat:@"abcdef"];
NSString *str11 = [str10 substringToIndex:2];//
从开始位置(包括开始位置的字符)截取长度为2的字符串
NSString *str12 = [str10 substringFromIndex:2];//截取所索2(包括所索2对应的字符)以后的所有字符串
NSLog(@"str10=%@, str11=%@", str11, str12);
//根据范围截取字符串
NSRange rang; // NSRange rang = NSMakeRange(3, 2);
rang.location = 3;
rang.length = 2;
NSString *str13 = [str10 substringWithRange:rang];
NSLog(@"str13=%@", str13);
//拼接字符串对象
NSString *str1 = @"1", *str2 =
@"2";
NSString *str33 = [[NSString alloc] initWithFormat:@"%@%@", str1, str2];
NSLog(@"%@", str33);
NSString *str3 = [str1 stringByAppendingFormat:@"%@", str2];
NSLog(@"%@", str3);
NSString *str4 = [str1 stringByAppendingString:str2];
NSLog(@"%@", str4);
/查询字符串对象
NSString *link = @"hello,yida hulian";
NSRange range = [link rangeOfString:@"Yida"];
if(range.location != NSNotFound)//NSNotFound表示无限大
{
NSLog(@"找到了!位置在%ld,子串长度为%ld",
range.location, range.length);
}
else
{
NSLog(@"没找到!");
}
//可变字符串对象
//添加字符串
NSMutableString *str55 = [NSMutableString stringWithString:@"字符串"];
[str55 appendString:@"可变"];
[str55 appendFormat:@"flag=%d", 100];
NSLog(@"%@", str55);
//插入字符串
NSMutableString *str5 = [NSMutableString stringWithString:@"字符串"];
[str5 insertString:@"可变" atIndex:0];
[str5 insertString:@"akgo"
atIndex:str5.length];
NSLog(@"%@", str5);
//删除字符串
NSMutableString *str6 = [NSMutableString stringWithString:@"字符符串"];
[str6 deleteCharactersInRange:NSMakeRange(1, 2)];
NSLog(@"str6=%@", str6);
//替换字符串
NSMutableString *str7 = [NSMutableString stringWithString:@"字符串"];
[str7 replaceCharactersInRange:NSMakeRange(0, 2) withString:@"msn"];
NSLog(@"str7=%@", str7);
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 数据库链接字符串查询网站
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- Flex字符串比较 还有Flex字符串操作
- 插件管理框架 for Delphi(一)
- Ruby中创建字符串的一些技巧小结
- ASP下经常用的字符串等函数参考资料
- 将字符串小写转大写并延时输出的批处理代码
- 将字符串转换成System.Drawing.Color类型的方法
- Lua源码中字符串类型的实现
- Lua性能优化技巧(四):关于字符串
- 字符串聚合函数(去除重复值)
- Ruby中的字符串编写示例
- 总结的5个C#字符串操作方法分享
- sqlserver中求字符串中汉字的个数的sql语句