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

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

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

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

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

【问】什么时候用到单例

【答】数据共享的时候

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//可变字典

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

OC字符串NSString的更多相关文章

  1. OC之字符串 NSString与NSMutableString

    一.NSString 不可变字符串的操作1)将字符串常量对象直接赋值给字符串引用 NSString *str1=@"hello"; 字符串对象的输出格式:NSLog(@" ...

  2. OC 初识NSString,self关键字,继承,成员变量的可见性,description方法

    OC 初识NSString,self关键字,继承,成员变量的可见性,description方法 初识 NSString: char * string = "旭宝爱吃鱼"; 常量字符 ...

  3. oc 字符串

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...

  4. OC字符串的一些常用的函数。

    )//获取字符串长度 NSUInteger len= str.length; () //通过指定索引返回对应的字符 unichar ch =[str characterAtIndex:]; ()//通 ...

  5. Objective-C: 字符串NSString与NSMutableString

    字符串算是OC中非常重要和常用的一部分内容,OC中的字符串与我之前在学习C,C++,Java中的字符串有一定的不同,它非常类似于C++中容器的概念,但用法却与之还是有很大的不同,也许是因为OC的语法就 ...

  6. OC字符串常用函数

    创建一个字符串对象: NSstring * str1 = @"hello"; NSString * str = [[NSString alloc]initWithString:@& ...

  7. 14.Object-C--浅谈Foundation框架字符串NSString 与NSMutableString

    OC的字符串时经常使用到的,今天我对于OC字符串做一个简单的总结,如果有错误之处,麻烦留言指正.感谢! NSString是一个不可变长度的字符串对象.表示它初始化以后,你不能改变该变量所分配的内存中的 ...

  8. OC字符串的常用方法

    网上写的关于字符串常用方法的博客很多,这里我简单做了下总结!不喜勿喷哦! 一.创建字符串 #import <Foundation/Foundation.h> //NSString //创建 ...

  9. iOS中的字符串NSString

    创建一个字符串对象: NSstring * str1 = @"hello world"; NSString * str = [[NSString alloc]initWithStr ...

随机推荐

  1. HBase单个RegionServer的region数目上限

    前言 RegionServer维护Master分配给它的region,处理对这些region的IO请求,负责切分在运行过程中变得过大的region, 由于集群性能( 分配的内存和磁盘是有限的 )有限的 ...

  2. 【原创】Kakfa network包源代码分析

    kafka.network包主要为kafka提供网络服务,通常不包含具体的逻辑,都是一些最基本的网络服务组件.其中比较重要的是Receive.Send和Handler.Receive和Send封装了底 ...

  3. Emit学习(4) - Dapper解析之数据对象映射(一)

    感觉好久没有写博客了, 这几天有点小忙, 接下来会更忙, 索性就先写一篇吧. 后面估计会有更长的一段时间不会更新博客了. 废话不多说, 先上菜. 一.示例 1. 先建类, 类的名称与读取的表名并没有什 ...

  4. [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(4)

    这个系列已经写了6篇,链接地址如下: [Asp.net 5] DependencyInjection项目代码分析 [Asp.net 5] DependencyInjection项目代码分析2-Auto ...

  5. foreach DataTable或Table时要略过第一行。

    昨天有续写一个练习<输入数字动态创建行(二)>http://www.cnblogs.com/insus/p/4916260.html ,最终是需要把数据存入数据库中. 在循环ASP:Tab ...

  6. 编写CLR存储过程中使用SqlDataRecord

    温习一下这些天学习的CLR编程,存储过程,函数. 编写CLR的存储过程,运行起来的效率,果然比普通的SQL语句,存储过程或是函数均高. 以后专案需求,或是执行效率较高的SQL,得写成CLR程序,再部署 ...

  7. Web API应用架构设计分析(1)

    Web API 是一种应用接口框架,它能够构建HTTP服务以支撑更广泛的客户端(包括浏览器,手机和平板电脑等移动设备)的框架, ASP.NET Web API 是一种用于在 .NET Framewor ...

  8. iOS阶段学习第15天笔记(NSDate操作)

    iOS学习(OC语言)知识点整理 一.OC关于NSDate类的操作实例代码 //默认直接显示对象,显示的是格林威治时间 //获取当前日期时间的实例方法 NSDate *date1=[[NSDate a ...

  9. Hack语言特性之类型化

    Hack最基础的特性就是类型标注.PHP5已经开始支持对象的类型化,PHP7也提供了标量类型化声明.Hack提供了全面的类型标注支持,与其typecher配合使用,还可以实现快速.前置静态类型验证. ...

  10. Maven依赖Scope标签用法

    在一个maven项目中,如果存在编译需要而发布不需要的jar包,可以用scope标签,值设为provided.如下: <dependency>            <groupId ...