NSString常用方法和属性

     //compare 比较字符串升序、相同还是降序,比较原理:首先比较第一个字符(ASCII码比较),如果是升序就为升序,如果相同比较下一个字符。。。
NSString *str1 = @"abcd";
NSString *str2 = @"ABCD";
NSComparisonResult result = [str1 compare:str2];
// caseInsensitiveCompare 忽略大小写比较
// NSComparisonResult result2 = [s7 caseInsensitiveCompare:s8];
if (result == NSOrderedAscending) {
NSLog(@"升序");
} else if(result == NSOrderedSame) {
NSLog(@"相同");
} else if(result == NSOrderedDescending) {
NSLog(@"降序");
} //length 计算字符串字符的个数
NSString *str3 = @"";
NSString *str4 = @"";
NSUInteger len1 = [str3 length];
NSUInteger len2 = [str4 length];
NSLog(@"len1 = %ld ,len2 = %ld", len1, len2); //————————————————————————————字符串的转化 ————————————————————————————
/*
1、大小写的转换
2、与基本数据类型的转换
*/ NSString *str5 = @"hello WORLD";
NSString *str6 = [str5 uppercaseString]; // 全部转为大写
NSString *str7 = [str5 lowercaseString]; // 全部转为小写
NSString *str8 = [str5 capitalizedString]; // 首字母大写
NSLog(@"转为大写:%@",str6);
NSLog(@"转为小写:%@",str7);
NSLog(@"转为首字母大写:%@",str8); // 转为基本数据类型,只能是数字字符串可以转化
NSString *str9 = @"";
int value1 = [str9 intValue];
float value2 = [str9 floatValue];
double value3 = [str9 doubleValue];
BOOL value4 = [str9 boolValue];
NSLog(@"value1 = %d",value1);
NSLog(@"value2 = %f",value2);
NSLog(@"value3 = %lf",value3);
NSLog(@"value4 = %d",value4); //————————————————————————————字符串的拼接—————————————————————————————— NSString *str10 = @"";
NSString *str11 = @""; NSString *str12 = [[NSString alloc] initWithFormat:@"%@%@",str10,str11];
NSLog(@"str12 :%@",str12); NSString *str13 = [str10 stringByAppendingString:str11];
NSLog(@"str13 :%@",str13); NSString *str14 = [str10 stringByAppendingFormat:@"%@33",str11]; //可以追加
NSLog(@"str14 :%@",str14); //————————————————————————————字符串的查找替换——————————————————————————— // 方式一:
NSString *str15 = @"549686034@qq.com";
//rangeOfString 查找字符串所在的位置 返回NSRange类型
NSRange range = [str15 rangeOfString:@"@qq.com"];
//NSNotFound 用于判断是否找到
if (range.location != NSNotFound) {
NSLog(@"包含字符串");
} else{
NSLog(@"不包含字符串");
} // 方式二:查找并且替换
NSString *newString = [str15 stringByReplacingOccurrencesOfString:@"qq.com" withString:@"163.com"];
NSLog(@"newString :%@",newString); //————————————————————————————字符串的截取——————————————————————————— NSString *str16 = @""; // substringToIndex:从字符串开始截取到指定的位置,是从0开始
NSLog(@"截取的:%@",[str16 substringToIndex:]); // substringFromIndex:从指定位置截取到字符串结尾
NSLog(@"截取的1:%@",[str16 substringFromIndex:]); // substringWithRange:截取指定的范围
NSRange range1 = {,};
// NSRange range2 = NSMakeRange(1, 3); // NSrange的两种创建方式
NSLog(@"截取的2:%@",[str16 substringWithRange:range1]); // 取指定位置的字符
char c = [str16 characterAtIndex:];
NSLog(@"c = %c",c); /*=============================NSMutableString(可变字符串)常用方法========================*/ // 1、————————————————————————————可变字符串的创建———————————————————————————
NSMutableString *mstr1 = [[NSMutableString alloc] initWithFormat:@"zxcvbnm"];
NSMutableString *mstr2 = [NSMutableString stringWithFormat:@"asdfghjkl"]; // NSMutableString *ms3 = @"hjkl;"; 可变的字符串不能这么写 // 2、————————————————————————————可变字符串的插入、删除、追加、替换———————————————————————————
// insertString:atInde: 将字符串插入到指定的位置,不需要返回新的字符,这是跟不可变字符串的区别
[mstr1 insertString:@"" atIndex:];
NSLog(@"ms1 :%@",mstr1); // deleteCharactersInRange :删除指定范围的字符串
NSRange range3 = {,};
[mstr2 deleteCharactersInRange:range3];
NSLog(@"mstr2 :%@",mstr2); //字符串的拼接
[mstr2 appendString:@""];
[mstr2 appendFormat:@"%d99",];// 可以追加
NSLog(@"mstr2 :%@",mstr2); //字符串替换
NSMutableString *mstr3 = [[NSMutableString alloc] initWithFormat:@"YYXXZZ"];
NSRange range4 = [mstr3 rangeOfString:@"ZZ"];
// replaceCharactersInRange:withString: 将指定范围的字符串替换
[mstr3 replaceCharactersInRange:range4 withString:@"VV"];
NSLog(@"mstr3:%@",mstr3); // 设置新的字符串
[mstr3 setString:@""];
NSLog(@"new_mstr3:%@",mstr3);

本文GitHub地址https://github.com/zhangkiwi/iOS_SN_NSString

iOS-OC-基础-NSString常用方法的更多相关文章

  1. OC基础:NSString NSNumber 分类: ios学习 OC 2015-06-17 17:55 77人阅读 评论(0) 收藏

    OC中的基本数据类型 NSString  在64位系统下,相当于long,在非64位系统下,想当于int. CGFloat   在64位系统下,相当于double,在非64位系统之下,想当与float ...

  2. iOS 阶段学习第11天笔记(OC基础知识)

    iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import  用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...

  3. iOS开发OC基础:Xcode中常见英文总结,OC常见英文错误

    在开发的过程中难免会遇到很多的错误,可是当看到系统给出的英文时,又不知道是什么意思.所以这篇文章总结了Xcode中常见的一些英文单词及词组,可以帮助初学的人快速了解给出的提示.多练习,就肯定能基本掌握 ...

  4. iOS - OC NSString 字符串

    前言 @interface NSString : NSObject <NSCopying, NSMutableCopying, NSSecureCoding> @interface NSM ...

  5. OC基础笔记目录

    OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...

  6. ios+oc面试题

    ios+oc面试题     浅复制和深复制的区别?//浅拷贝和深拷贝答案:浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身.//通过对象的指针来访问这个对象深层复制(mutableCo ...

  7. OC基础16:复制对象

    "OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.浅复制即是指针赋值,复制对象的修改会影 ...

  8. 【IOS学习基础】NSObject.h学习

    一.<NSObject>协议和代理模式 1.在NSObject.h头文件中,我们可以看到 // NSObject类是默认遵守<NSObject>协议的 @interface N ...

  9. OC基础回想(十二)协议

    在OC基础(十一)中我们讨论了类别和非正式协议的奇异之处.在使用非正式协议时.能够仅仅实现你想要获得响应的方法.也不必在对象中声明不论什么内容来表示该对象可用作托付对象. 全部这些任务能够用最少的代码 ...

  10. OC基础--数据类型与表达式

    前言 做iOS开发有3年了,从当初的小白到现在,断断续续看过很多资料,之前也写过一些博文来记录,但是感觉知识点都比较凌乱.所以最近准备抽时间把iOS开发的相关知识进行一个梳理,主要分为OC基础.UI控 ...

随机推荐

  1. PL/SQL语句块提高1+case语句

    set serveroutput on; declare --默认值的bianliang v_a ; -- v_b integer; --用stud.id 的类型 v_id stud.id%type; ...

  2. 8 fastJson的使用

    Fastjson介绍 Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发. 1.遵循http://json.org标准,为其官方网站收录的参考实现之一. 2.功能qiang打, ...

  3. OpenGL ES 2.0 内置变量

    1. 顶点着色器中的内置变量 输出变量 gl_Position(vec4):顶点数据位置gl_PointSize(float):计算一个点的大小 2.片元着色器中的内置变量 输入变量gl_FragCo ...

  4. <转> 纸牌屋1-4集分析

    原文:http://blog.sina.com.cn/s/blog_b86c61490102v56t.html 第一季第一集 主人公弗兰克的出场,是以对待一只邻家将死之狗的态度展开的,充分显示了主人公 ...

  5. 编译XSIP过程中环境配置

    昨天在编译XSip的过程中,有很多问题首先是出现了很多的error C1083. 然后到XSIP自己的文件夹中,也找不到对应的.h文件. 上网查阅后发现应该是缺少了对应的头文件的路径.   于是到可以 ...

  6. js工厂模式

    设计工厂模式是为了创建对象.通常在类或者类的静态方法中实现,具有两个目标.其中一个是:当创建相似对象时执行重复操作: 另外一个目标是:编译时不知道具体类型(类)的情况下,为工厂客户提供一种创建对象的接 ...

  7. MooTools 异步请求验证

    http://www.chinamootools.com/ 问题 MooTools 异步请求例子 <{foreach from=array('0','1','2','3','4') item=c ...

  8. 初学 Play Framework 以及可能遇到的问题

    这段话之后都是我从别人那拷贝过来的资料,方便大家查阅 红色标注字体是我自己遇到的一些问题: 如果你遇到了这样的问题  :

  9. WDCP LNMPA和LNMP 504 Gateway time-out错误的解决方法

    Nginx的特点是处理静态很给力,Apache的特点是处理动态很稳定,两者结合起来便是LNMPA,nginx处理前端,apache处理后端,这样处理静态会很快,处理动态会很稳定.当我以为安装完成以后便 ...

  10. js代码中的parent,top和self有什么区别

    .parent常用在iframe和frame中的子页面访问父页面中的对象 .top :一个页面可能会有很多层,top是指最顶层的框架 .self :是指当前窗口