zoukankan      html  css  js  c++  java
  • OC字符串NSString

    ==========================

    面向对象编程进阶和字符串

    ==========================

    Δ一.类的设计模式—单例

    【单例】程序允许过程中,有且仅有一块内存空间存在,这种类的设计模式成为单例

    【问】什么时候用到单例

    【答】数据共享的时候

    1.单例的书写格式

    以+(加号)开头的方法,可以直接被类调用;-(减号)开头方法 ,是对象方法,用对象来调用;

    2.认识单例

    【见singleDemo】

    【注】单例方法名字随便起,但是尽量保证见名知意!

    练习1:创建一个单例类single,有一个typeid属性。 创建一个dog类,一个cat类;

    要求:dog类中负责修改single类的属性值,cat负责取出typeid值。

    【思考】如果不用单例,如何实现?

    二.get和set方法以及.属性

    练习2:创建一个cat类,代码实现get和set方法,cat类中有speed 成员变量。

    要求:第一种方式用get、set方式

      第二种方式用@property方式

    练习3:要求练习1中的题目用@property方式修改

    ====================

    字符串

    ====================

    一.认识oc中的字符串

    oc中以 @“” 包含的内容,是字符串;无论@“”包含了字符串的长度为多少。

    【例如】:@“a”,@“123”,@“_%^&*”,

    【注】c语言中字符串是用“”,oc中是用@“”

    NSString

    【见strDemo1】

    //声明了一个类型为NSString 的字符串str

            //NSString 是一个类的类型,用法跟基础类型一样

            //NSString 这个类是苹果公司封装好的一个字符串类

            

            //定义了一个str 这个对象变量,给赋初始值为@"hello world!"

            NSString* str = @"hello world!";

            

            //c字符串

    //        char a[64]="hello";

    //        a[0],a[1]...

            

    //        NSString* str1 = [[NSString alloc]initWithFormat:@"%@",str];

            

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

            

            //求字符串长度 --- length

            //oc中 常用int类型,NSUInteger不常用

            NSUInteger length = [str length];

            NSLog(@"%ld",length);

            

            //∆万能拼接字符串

            NSString* Str1 = @"yudejun";

            NSString* Str2 = @"xijinping";

            

            //oc 中 字符串的格式转化符是:%@

            //编译器在碰到格式化转化符的时候,会自动替换成后面参数所对应的变量值

            NSString* Str3 = [NSString stringWithFormat:@"%@ and %@",Str1,Str2];

            NSLog(@"%@",Str3);

            

            //【练习】

            //请拼接2个字符串,第一个字符串内容为@“你好”,第二个字符串为@“中国”;拼接完成之后打印出长度

            NSString* str4 = @"你好";

            NSString* str5 = @"中国";

            NSString* str6 = [NSString stringWithFormat:@"%@%@",str4,str5];

            NSString* str6 = [NSString stringWithFormat:@“%d”,324123];

            NSLog(@"%ld",[str6 length]);

            

            

            //字符串的转化

            NSString* StrInt = @"123456789987654321";

            int a = [StrInt intValue];

            NSLog(@"%d",a);

            

            long long b = [StrInt longLongValue];

            

            //@“0.1234”

            //NSString* StrFloat = @"0.1234";

            float c = [@"0.1234" floatValue];

            

            //练习 : 计算@“1234” @“0.25” @“199” @“0.5” 这四个数的值,并打印出来

            

            

            //字符串分割

            //【注】字符串分割要在字符串有效长度范围内

            NSString* tempStr = @"helloworld";

    //        NSString* FStr = [tempStr substringFromIndex:5];

    //        NSString* FStr = [tempStr substringToIndex:5];

            

            NSRange range = {2,3};

            NSString* FStr = [tempStr substringWithRange:range];

            NSLog(@"%@",FStr);

            

            //字符串的比较

            NSString* tem1 = @"abc";

            NSString* tem2 = @"abc";

            

            //判断tem1 是否等于 tem2

            if ([tem1 isEqualToString:tem2]) {

                NSLog(@"相等");

            }

            else

            {

                NSLog(@"不相等");

            }

            

            NSComparisonResult result = [tem1 compare:tem2];

            if (result == NSOrderedAscending) {

                NSLog(@"tem2 > tem1");

            }

            else if (result == NSOrderedDescending)

            {

                NSLog(@"tem2 < tem1");

                

            }else if (result == NSOrderedSame)

            {

                NSLog(@"tm2 == tem1");

            }

            

            //BOOL 读作布尔类型,只有2种状态,真或者假,可以用1、0也可以用yes 、no

            //字符串前缀和后缀判断

            NSString* string = @"http://www.baidu.com";

            BOOL have = [string hasPrefix:@"http://"];

            if (have == YES) {

                NSLog(@"是http://开头");

            }

            else

            {

                NSLog(@"不是http://开头");

            }

            

            BOOL havejiewei = [string hasSuffix:@"com"];

            if (havejiewei) {

                NSLog(@"是com结尾");

            }

            else

            {

                NSLog(@"不是com结尾");

            }

            

            //转成大写

            NSLog(@"%@",[string uppercaseString]);

            

            //转成小写

            [string lowercaseString];

            

            //所有单词首字母大写

            [string capitalizedString];

            

            //查找字符串中的某个字符串,进行替换,第一个参数是要查找的字符串,第二个字符串为需要替换成的字符串

            string = [string stringByReplacingOccurrencesOfString:@"www" withString:@"googl"];

            NSLog(@"%@",string);

            

            

            NSString* tmp = @"ceshishuju";

            

            //=========================================

            NSMutableString* m_str = [[NSMutableString alloc]initWithString:tmp];

            //字符串的修改

            [m_str setString:@"hello world"];

            

            //字符串的追加

            [m_str appendFormat:@" nihao"];

            

            //字符串的删除

            NSRange rang = {1,2};

            [m_str deleteCharactersInRange:rang];

            

            //字符串的插入

            [m_str insertString:@"xijinping" atIndex:3];

            

            NSLog(@"%@",m_str);

            

            //∆以NSMutable开头的都是可变类型,以NSMutable开头定义的对象都是可以对数据进行修改;

            

    //        NSString //不可变字符串

    //        NSMutableString//可变字符串

    //        NSArray// 不可变数组

    //        NSMutableArray//可变数组

            

    //        NSDictionary//不可变字典

    //        NSMutableDictionary//可变字典

            

            //可变的意思是可以对这个类型定义的变量进行修改或者删除操作

  • 相关阅读:
    hdu 2112 (最短路+map)
    poj 1502 最短路+坑爹题意
    poj 1696 Space Ant (极角排序)
    poj 1410 线段相交判断
    使用本地光盘安装Microsoft .NET Framework 3.5 for Win8.1/WinServer2012R2
    Excel REPT函数使用
    tomcat7配置虚拟目录
    Tomcat 7.0的配置
    js去除空格
    JAVABEAN连接各数据库
  • 原文地址:https://www.cnblogs.com/ljcgood66/p/5281354.html
Copyright © 2011-2022 走看看