您的位置:首页 > 移动开发 > Objective-C

数字对象、字符串(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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息