数字对象、字符串(16.5.10)

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);





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动控制节水灌溉技术的高低代表着农业现代化的发展状况,灌溉系统自动化水平较低是制约我国高效农业发展的主要原因。本文就此问题研究了单片机控制的滴灌节水灌溉系统,该系统可对不同土壤的湿度进行监控,并按照作物对土壤湿度的要求进行适时、适量灌水,其核心是单片机和PC机构成的控制部分,主要对土壤湿度与灌水量之间的关系、灌溉控制技术及设备系统的硬件、软件编程各个部分进行了深入的研究。 单片机控制部分采用上下位机的形式。下位机硬件部分选用AT89C51单片机为核心,主要由土壤湿度传感器,信号处理电路,显示电路,输出控制电路,故障报警电路等组成,软件选用汇编语言编程。上位机选用586型以上PC机,通过MAX232芯片实现同下位机的电平转换功能,上下位机之间通过串行通信方式进行数据的双向传输,软件选用VB高级编程语言以建立友好的人机界面。系统主要具有以下功能:可在PC机提供的人机对话界面上设置作物要求的土壤湿度相关参数;单片机可将土壤湿度传感器检测到的土壤湿度模拟量转换成数字量,显示于LED显示器上,同时单片机可采用串行通信方式将此湿度值传输到PC机上;PC机通过其内设程序计算出所需的灌水量和灌水时间,且显示于界面上,并将有关的灌水信息反馈给单片机,若需灌水,则单片机系统启动鸣音报警,发出灌水信号,并经放大驱动设备,开启电磁阀进行倒计时定时灌水,若不需灌水,即PC机上显示的灌水量和灌水时间均为0,系统不进行灌水。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值