• OC-NSStr***


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

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

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

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

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

    【问】什么时候用到单例

    【答】数据共享的时候

    &*bsp;

    以Apple为例:

    + (Apple *)share

    {

    stat*c Apple * a = **l;

    stat*c d*spatch_o*ce_t o*ceToke*;

    d*spatch_o*ce(&o*ceToke*,^{

    a = [[Apple alloc] ***t];

    });

    retur* a;

    }

    &*bsp;&*bsp;

    1.单例的书写格式

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

    &*bsp;&*bsp;

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

    &*bsp;

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

    字符串

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

    &*bsp;

    一.认识oc中的字符串

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

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

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

    &*bsp;

    NSStr***

    【见strDemo1】

    &*bsp;

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

    &*bsp; &*bsp; &*bsp; &*bsp; //NSStr*** 是一个类的类型,用法跟基础类型一样

    &*bsp; &*bsp; &*bsp; &*bsp; //NSStr*** 这个类是苹果公司封装好的一个字符串类

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

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

    &*bsp; &*bsp; &*bsp; &*bsp; NSStr**** str = @"hello world!";

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; //c字符串

    //&*bsp; &*bsp; &*bsp; &*bsp; char a[64]="hello";

    //&*bsp; &*bsp; &*bsp; &*bsp; a[0],a[1]...

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    //&*bsp; &*bsp; &*bsp; &*bsp; NSStr**** str1 = [[NSStr*** alloc]***tW*thFormat:@"%@",str];

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    //&*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"%@",str1);

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; //求字符串长度 --- le**th

    &*bsp; &*bsp; &*bsp; &*bsp; //oc中 常用**t类型,NSUI*te*er不常用

    &*bsp;

    /**************************************************************************************/

    &*bsp;

    1&*t;

    &*bsp; &*bsp; &*bsp; &*bsp; NSUI*te*er le**th = [str le**th];

    &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"%ld",le**th);

    &*bsp;

    &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; 2&*t;

    &*bsp; &*bsp; &*bsp; &*bsp; //∆万能拼接字符串

    &*bsp; &*bsp; &*bsp; &*bsp; NSStr**** Str1 = @"yudeju*";

    &*bsp; &*bsp; &*bsp; &*bsp; NSStr**** Str2 = @"x*j**p***";

    &*bsp;

    &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; 3&*t;

    &*bsp; &*bsp; &*bsp; &*bsp; //oc 中 字符串的格式转化符是:%@

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

    &*bsp; &*bsp; &*bsp; &*bsp; NSStr**** Str3 = [NSStr*** str***W*thFormat:@"%@ a*d %@",Str1,Str2];

    &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"%@",Str3);

    &*bsp;

    &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; 4&*t;

      例如:

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

    &*bsp; &*bsp; &*bsp; &*bsp; NSStr**** str4 = @"你好";

    &*bsp; &*bsp; &*bsp; &*bsp; NSStr**** str5 = @"中国";

    &*bsp; &*bsp; &*bsp; &*bsp; NSStr**** str6 = [NSStr*** str***W*thFormat:@"%@%@",str4,str5];

    &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"%ld",[str6 le**th]);

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; 5&*t;

    &*bsp; &*bsp; &*bsp; &*bsp; //字符串的转化

    &*bsp; &*bsp; &*bsp; &*bsp; NSStr**** StrI*t = @"123456789987654321";

    &*bsp; &*bsp; &*bsp; &*bsp; **t a = [StrI*t **tValue];

    &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"%d",a);

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; lo** lo** b = [StrI*t lo**Lo**Value];

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; //@“0.1234”

    &*bsp; &*bsp; &*bsp; &*bsp; //NSStr**** StrFloat = @"0.1234";

    &*bsp; &*bsp; &*bsp; &*bsp; float c = [@"0.1234" floatValue];

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

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

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; 6&*t;

    &*bsp; &*bsp; &*bsp; &*bsp; //字符串分割

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

    &*bsp; &*bsp; &*bsp; &*bsp; NSStr**** tempStr = @"helloworld";

    //&*bsp; &*bsp; &*bsp; &*bsp; NSStr**** FStr = [tempStr substr***FromI*dex:5];

    //&*bsp; &*bsp; &*bsp; &*bsp; NSStr**** FStr = [tempStr substr***ToI*dex:5];

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; NSRa**e ra**e = {2,3};

    &*bsp; &*bsp; &*bsp; &*bsp; NSStr**** FStr = [tempStr substr***W*thRa**e:ra**e];

    &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"%@",FStr);

    &*bsp;

    &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; 7&*t;

    &*bsp; &*bsp; &*bsp; &*bsp; //字符串的比较

    &*bsp; &*bsp; &*bsp; &*bsp; NSStr**** tem1 = @"abc";

    &*bsp; &*bsp; &*bsp; &*bsp; NSStr**** tem2 = @"abc";

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; //判断tem1 是否等于 tem2

    &*bsp; &*bsp; &*bsp; &*bsp; *f ([tem1 *sEqualToStr***:tem2]) {

    &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"相等");

    &*bsp; &*bsp; &*bsp; &*bsp; }

    &*bsp; &*bsp; &*bsp; &*bsp; else

    &*bsp; &*bsp; &*bsp; &*bsp; {

    &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"不相等");

    &*bsp; &*bsp; &*bsp; &*bsp; }

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; NSCompar*so*Result result = [tem1 compare:tem2];

    &*bsp; &*bsp; &*bsp; &*bsp; *f (result == NSOrderedAsce*d***) {

    &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"tem2 &*t; tem1");

    &*bsp; &*bsp; &*bsp; &*bsp; }

    &*bsp; &*bsp; &*bsp; &*bsp; else *f (result == NSOrderedDesce*d***)

    &*bsp; &*bsp; &*bsp; &*bsp; {

    &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"tem2 < tem1");

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; }else *f (result == NSOrderedSame)

    &*bsp; &*bsp; &*bsp; &*bsp; {

    &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"tm2 == tem1");

    &*bsp; &*bsp; &*bsp; &*bsp; }

    &*bsp;

    &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; 8&*t;

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

    &*bsp; &*bsp; &*bsp; &*bsp; //字符串前缀和后缀判断

    &*bsp; &*bsp; &*bsp; &*bsp; NSStr**** str*** = @"http://www.ba*du.com";

    &*bsp; &*bsp; &*bsp; &*bsp; BOOL have = [str*** has*ref*x:@"http://"];

    &*bsp; &*bsp; &*bsp; &*bsp; *f (have == YES) {

    &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"是http://开头");

    &*bsp; &*bsp; &*bsp; &*bsp; }

    &*bsp; &*bsp; &*bsp; &*bsp; else

    &*bsp; &*bsp; &*bsp; &*bsp; {

    &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"不是http://开头");

    &*bsp; &*bsp; &*bsp; &*bsp; }

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; BOOL havej*ewe* = [str*** hasSuff*x:@"com"];

    &*bsp; &*bsp; &*bsp; &*bsp; *f (havej*ewe*) {

    &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"是com结尾");

    &*bsp; &*bsp; &*bsp; &*bsp; }

    &*bsp; &*bsp; &*bsp; &*bsp; else

    &*bsp; &*bsp; &*bsp; &*bsp; {

    &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"不是com结尾");

    &*bsp; &*bsp; &*bsp; &*bsp; }

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp;

    9&*t;

    &*bsp; &*bsp; &*bsp; &*bsp; //转成大写

    &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"%@",[str*** uppercaseStr***]);

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; //转成小写

    &*bsp; &*bsp; &*bsp; &*bsp; [str*** lowercaseStr***];

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; //所有单词首字母大写

    &*bsp; &*bsp; &*bsp; &*bsp; [str*** cap*tal*zedStr***];

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

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

    &*bsp; &*bsp; &*bsp; &*bsp; str*** = [str*** str***ByReplac***Occurre*cesOfStr***:@"www" w*thStr***:@"*oo*l"];

    &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"%@",str***);

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; NSStr**** tmp = @"cesh*shuju";

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; //=========================================

    &*bsp; &*bsp; &*bsp; &*bsp; NSMutableStr**** m_str = [[NSMutableStr*** alloc]***tW*thStr***:tmp];

    &*bsp; &*bsp; &*bsp; &*bsp; //字符串的修改

    &*bsp; &*bsp; &*bsp; &*bsp; [m_str setStr***:@"hello world"];

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; //字符串的追加

    &*bsp; &*bsp; &*bsp; &*bsp; [m_str appe*dFormat:@" **hao"];

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; //字符串的删除

    &*bsp; &*bsp; &*bsp; &*bsp; NSRa**e ra** = {1,2};

    &*bsp; &*bsp; &*bsp; &*bsp; [m_str deleteCharactersI*Ra**e:ra**];

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; //字符串的插入

    &*bsp; &*bsp; &*bsp; &*bsp; [m_str **sertStr***:@"x*j**p***" atI*dex:3];

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    &*bsp; &*bsp; &*bsp; &*bsp; NSLo*(@"%@",m_str);

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

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

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    //&*bsp; &*bsp; &*bsp; &*bsp; NSStr*** //不可变字符串

    //&*bsp; &*bsp; &*bsp; &*bsp; NSMutableStr***//可变字符串

    //&*bsp; &*bsp; &*bsp; &*bsp; NSArray// 不可变数组

    //&*bsp; &*bsp; &*bsp; &*bsp; NSMutableArray//可变数组

    &*bsp;&*bsp; &*bsp; &*bsp; &*bsp;

    //&*bsp; &*bsp; &*bsp; &*bsp; NSD*ct*o*ary//不可变字典

    //&*bsp; &*bsp; &*bsp; &*bsp; NSMutableD*ct*o*ary//可变字典

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

    &*bsp;

    &*bsp;

  • 相关阅读:
    交叉编译qt5.4.1遇到的错误
    qt5.4.1官网上找不到
    Runtime dependency gstreameraudio1.0 found: NO (tried pkgconfig and cmake)
    gstreamer库 ubuntu下安装
    gstreamer编译错误
    gstreamer在ubuntu上源码编译
    http学习
    SQL定义变量
    对w3wp.exe的一点认识!
    官方发布!DevExpress WPF 2022年产品升级路线图
  • 原文地址:https://www.cnblogs.com/GJ-ios/p/5282345.html
Copyright © 2020-2023  润新知