OC-NSString
==========================
面向对象编程进阶和字符串
==========================
Δ一.类的设计模式—单例
【单例】程序允许过程中,有且仅有一块内存空间存在,这种类的设计模式成为单例
【问】什么时候用到单例
【答】数据共享的时候
以Apple为例:
+ (Apple *)share
{
static Apple * a = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken,^{
a = [[Apple alloc] init];
});
return a;
}
1.单例的书写格式
以+(加号)开头的方法,可以直接被类调用;-(减号)开头方法 ,是对象方法,用对象来调用;
【注】单例方法名字随便起,但是尽量保证见名知意!
====================
字符串
====================
一.认识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不常用
/**************************************************************************************/
1>
NSUInteger length = [str length];
NSLog(@"%ld",length);
2>
//∆万能拼接字符串
NSString* Str1 = @"yudejun";
NSString* Str2 = @"xijinping";
3>
//oc 中 字符串的格式转化符是:%@
//编译器在碰到格式化转化符的时候,会自动替换成后面参数所对应的变量值
NSString* Str3 = [NSString stringWithFormat:@"%@ and %@",Str1,Str2];
NSLog(@"%@",Str3);
4>
例如:
//请拼接2个字符串,第一个字符串内容为@“你好”,第二个字符串为@“中国”;拼接完成之后打印出长度
NSString* str4 = @"你好";
NSString* str5 = @"中国";
NSString* str6 = [NSString stringWithFormat:@"%@%@",str4,str5];
NSLog(@"%ld",[str6 length]);
5>
//字符串的转化
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” 这四个数的值,并打印出来
6>
//字符串分割
//【注】字符串分割要在字符串有效长度范围内
NSString* tempStr = @"helloworld";
// NSString* FStr = [tempStr substringFromIndex:5];
// NSString* FStr = [tempStr substringToIndex:5];
NSRange range = {2,3};
NSString* FStr = [tempStr substringWithRange:range];
NSLog(@"%@",FStr);
7>
//字符串的比较
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");
}
8>
//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结尾");
}
9>
//转成大写
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(字符串)
OC NSString(字符串) 多行文字字面量 NSString * string = @"abC" @"DEF" @"hjk" @&qu ...
- iOS学习13之OC NSString类
C语言中,字符串是有char(ASC||码)字符组成. OC中,字符串是由unichar(Unicode)字符组成. 1.字符串(NSString) NSString:不可变字符串,即:创建以后,内容 ...
- iOS - OC NSString 字符串
前言 @interface NSString : NSObject <NSCopying, NSMutableCopying, NSSecureCoding> @interface NSM ...
- OC NSString 基本操作(用到补充持续更新)
1.将字符串拆分成数组 NSString *string = @"1,2,3,4"; NSArray *array = [string componentsSeparatedByS ...
- OC——NSString的常用方法
NSString *str1 = @"BeiJing"; NSString *str2 = @"beijing"; //全部转为大写 NSLog(@" ...
- OC——NSString和NSMutableString
int main(int argc, const char * argv[]) { @autoreleasepool { //----------------NSString------------- ...
- OC Nsstring的使用
// // main.m // NSString // // Created by mj on 13-4-5. // Copyright (c) 2013年 itcast. All rights re ...
- C 和 OC 字符串转换 NSString 和 char * 转换 const char* 与 char *
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { char *s = "He ...
- OC中的字符串常用方法
OC中的字符串常用方法 OC中对字符串进行操作使用了Foundation框架中的NSString类(不可变).NSMutableString类(可变). NSString 1.创建字符串 [objc] ...
- 记录OC学习的一点一滴(二)
NSString 基础练习: 代码: // // main.m // NSStringDemo01 // // Created by Levi on 14-3-14. // Copyright (c) ...
随机推荐
- Apple 的命令行交付工具“Transporter”
Apple 的命令行交付工具“Transporter” 占坑... https://help.apple.com/itc/transporteruserguide/#/apdATD1E1026-D1E ...
- java并发之Lock以及和synchronized区别
从Java5之后,在Java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock. 1.Lock 首先要说明的就是Lock,通过查看Lock的源码可知,Lo ...
- Activiti:创建activiti工程
Activiti:创建activiti工程 一.Activiti下载: 1,Activiti下载地址:https://github.com/Activiti/Activiti/releases 2,A ...
- centos 最新版git 致命错误: zlib.h:没有那个文件或目录
遇到此类问题通常是缺少对应的库文件. 由于yum install是老版本的git 还是1.8的 如果需要安装新版本的git,官方给出的url:https://git-scm.com/download/ ...
- Python3.6 安装、后续终端pip 安装模块命令
1. 下载安装包 https://www.python.org/ftp/python/3.6.4/python-3.6.4-amd64.exe 2. 安装python3.6 增加环境变量(打钩.红框很 ...
- 聊一聊HTML <!DOCTYPE> 标签
一般一个基本html页面的结构,如下代码所示: <html> <head> <title>我是基本的页面结构</title> </head> ...
- 爬虫bs4案例
案例:使用BeautifuSoup4的爬虫 我们以腾讯社招页面来做演示:http://hr.tencent.com/position.php?&start=10#a 使用BeautifuSou ...
- Javase、Javaee、Javame的区别
/*简而言之,javase是基础,要先学,javaee是企业级,接着学,然后可以转到javaweb方向,javame是做移动应用的.基础必须先学,然后再考虑下一步*/ Java 平台有三个版本,这使软 ...
- 解题报告:hdu1012
2017-09-07 21:46:53 writer:pprp 写一下水题,调节一下心情~ /* @theme: hdu 1012 u calculate e @writer:pprp @begin: ...
- Python基础笔记系列九:变量、自定义函数以及局部变量和全局变量
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 变量在前面的系列中也许就可以发现,python中的变量和C中的变量有些许不 ...