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 ...
随机推荐
- C#去掉HTML标记
该方法亲测可行,下面直接粘贴代码. public string RemoveHTMLTags(string htmlStream) { if (htmlStream == null) { throw ...
- c#隐藏和重写基类方法的异同
最近正在学习c#,对其中的方法重写和隐藏的概念很是模糊,现在将其归纳如下: 1:方法重写:就是在基类中的方法用virtual关键字来标识,然后在继承类中对该类进行重写(override),这样基类中的 ...
- 分享15个HTML5工具
HTML5 Working Draft Specification HTML5 Working Draft Specification译为HTML 5工作草案标准,它是 HTML5 的最新草案,由 W ...
- 提升VMware虚拟机性能招数
在VMware虚拟机(VMware Workstation或VMware Server)中我们可以同时运行多个Guest OS,当同时在同一Host OS中运行多台虚拟机时势必会严重影响到Host O ...
- Entity Framework 6 执行Linq to Entities异常"p__linq__1 : String truncation: max=0, len=2, value='测试'"
场景再现 我需要查询公司名称包含给定字符串的公司,于是我写了下面的测试小例子: var condition = "测试"; var query = from b in db.Com ...
- C# 使用memcache(memcache安装)
1.下载memcache. 2.安装memcache. 3.安装好后,打开任务管理器就能看到memcache服务了. 4 .memcache基本命令.
- Monotype推出基于HTML5的Web字体平台
著名字体公司Monotype近日宣布推出基于HTML5的Web字体平台,设计者可以访问近10万字体的目录. Monotype推出基于HTML5的Web字体平台 Monotype推出基于HTML5的We ...
- SQL查询中in、exists、not in、not exists的用法与区别
1.in和exists in是把外表和内表作hash(字典集合)连接,而exists是对外表作循环,每次循环再对内表进行查询.一直以来认为exists比in效率高的说法是不准确的,如果查询的两个表大小 ...
- Extjs中全键盘操作,回车跳到下一单元格
listeners: { afterRender: function (thisForm, options) { var els = Ext.DomQuery.select('input[type!= ...
- student表中创建触发器,实现student表和student _course表的级联删除
create trigger Delete_sc on student for delete as delete student_course where student_course.s_no in ...