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) ...
随机推荐
- Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.3
Maven 导入项目时报错: Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.3 ...
- firewall 防火墙相关
修改配置文件: /etc/sysconfig/network-scripts/ifcfg-ens33 文件 ONBOOT=no 改为yes 然后重启 service network restart ...
- feather mac 问题小结
feater 依赖php及jdk 1.自带的php没有cgi ,索性直接装个新的 修改环境变量,并使其生效,验证方式是 打印版本信息: php -v PHP 7.1.13 (cli) (built: ...
- 2017阿里C++研发工程师-校招-单词匹配
题目描述 给一个字符串, 然后给一个字典. 把字符串分解成字典里的单词组成的句子, 请输出所需空格最少的方案.并输出该方案. 样例 例如: 字符串为: str="ilikealibaba&q ...
- bzoj 3450: Tyvj1952 Easy
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 411 Solved: 309[Submit][Status][Discuss] Descriptio ...
- Docker 坑点记录
1 关于 Docker Windows 文件夹问题 C:\Users Docker Machine tries to auto-share your /Users (OS X) or C:\Users ...
- eclipse创建文件package,source folder和folder区别及相互转换
原文:http://blog.csdn.net/u014079773/article/details/66973910 https://www.cnblogs.com/shihaiming/p/735 ...
- Outlook.com 系列邮箱 POP3 及 IMAP 设置方法
支持 Exchange ActiveSync 的应用 有了 EAS,你可以立即获取电子邮件,以及在一个位置查看所有文件夹.日历和联系人. 如果你的电子邮件应用支持Exchange ActiveSync ...
- linux安装数据库删除
https://blog.csdn.net/qq_40550973/article/details/80721014 卸载mysql .快速删除 yum remove mysql mysql-serv ...
- UWP C# 调用 C++/CX
创建一个UWP项目 然后创建一个通用C++运行时项目 右键点击C++项目,添加一个C++类 在头文件中定义一个类 #pragma once namespace ImageFactoryRT { pub ...