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//可变字典
//可变的意思是可以对这个类型定义的变量进行修改或者删除操作
OC字符串NSString的更多相关文章
- OC之字符串 NSString与NSMutableString
一.NSString 不可变字符串的操作1)将字符串常量对象直接赋值给字符串引用 NSString *str1=@"hello"; 字符串对象的输出格式:NSLog(@" ...
- OC 初识NSString,self关键字,继承,成员变量的可见性,description方法
OC 初识NSString,self关键字,继承,成员变量的可见性,description方法 初识 NSString: char * string = "旭宝爱吃鱼"; 常量字符 ...
- oc 字符串
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...
- OC字符串的一些常用的函数。
)//获取字符串长度 NSUInteger len= str.length; () //通过指定索引返回对应的字符 unichar ch =[str characterAtIndex:]; ()//通 ...
- Objective-C: 字符串NSString与NSMutableString
字符串算是OC中非常重要和常用的一部分内容,OC中的字符串与我之前在学习C,C++,Java中的字符串有一定的不同,它非常类似于C++中容器的概念,但用法却与之还是有很大的不同,也许是因为OC的语法就 ...
- OC字符串常用函数
创建一个字符串对象: NSstring * str1 = @"hello"; NSString * str = [[NSString alloc]initWithString:@& ...
- 14.Object-C--浅谈Foundation框架字符串NSString 与NSMutableString
OC的字符串时经常使用到的,今天我对于OC字符串做一个简单的总结,如果有错误之处,麻烦留言指正.感谢! NSString是一个不可变长度的字符串对象.表示它初始化以后,你不能改变该变量所分配的内存中的 ...
- OC字符串的常用方法
网上写的关于字符串常用方法的博客很多,这里我简单做了下总结!不喜勿喷哦! 一.创建字符串 #import <Foundation/Foundation.h> //NSString //创建 ...
- iOS中的字符串NSString
创建一个字符串对象: NSstring * str1 = @"hello world"; NSString * str = [[NSString alloc]initWithStr ...
随机推荐
- 【转】万网域名查询接口(API)的说明
1.域名查询接口采用HTTP,POST,GET协议:调用URL:http://panda.www.net.cn/cgi-bin/check.cgi参数名称:area_domain 值为标准域名,例:h ...
- setTimeout,setInterval,process.nextTick,setImmediate in Nodejs
Nodejs的特点是事件驱动,异步I/O产生的高并发,产生此特点的引擎是事件循环,事件被分门别类地归到对应的事件观察者上,比如idle观察者,定时器观察者,I/O观察者等等,事件循环每次循环称为Tic ...
- 会员管理系统的设计和开发(2)-- RDLC报表的设计及动态加载
在上篇<会员管理系统的设计和开发(1)>介绍了关于会员系统的一些总体设计思路和要点,经过一段时间开发,软件终于完成并发布.在这期间,碰到了不少技术难点,并积累了不少开发心得和经验,本篇继续 ...
- 【vbs】vbs写ini文件
这两天在折腾给一个项目打安装包,第一次接触软件打包,用的Advanced Installer(以下简称AI),应该说如果安装过程没有特殊动作(常规动作指释放文件.写注册表.建快捷方式等)的话,倒挺傻瓜 ...
- iOS 学习笔记二【cocopods安装使用和安装过程中遇到的问题及解决办法】【20160725更新】
在osx 10.11之前cocopods问题不多,但是升级到11之后的版本,之前的cocopods大多用不了,需要重新安装,对于我这种使用测试版系统的技术狂来说,每次都需要重新安装很多东西, 当然,c ...
- C#获取 URL参数
假设当前页完整地址是:http://www.test.com/aaa/bbb.aspx?id=5&name=kelli "http://"是协议名 "www.te ...
- 阿里前端框架Alice是个不错的选择
BootStrap虽然用户群体广大,其整体风格尽管有不少skin可选,但以国情来看还是不好看. 阿里开源的前端框架,个人觉得还是很不错,Alice处处透着支付宝中界面风格的气息,电商感挺强. 以下内容 ...
- 第 25 章 CSS3 过渡效果
学习要点: 1.过渡简介 2.transition-property 3.transition-duration 4.transition-timing-function 5.transition-d ...
- shell脚本(管理守护进程)
工作中常常会遇到处理消息队列的消费者进程,这样的进程是一个守护进程,即一个服务.服务通常写个shell脚本来管理,查询服务的status ,启动start 关闭stop 重启reload.最近在学 ...
- Node.js的UnitTest单元测试
body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; } 在专业化的软件开发过程中,无论什么平台语言,现在都需要UnitTes ...