字符串作为OC语言的基本对象类型,被我们在各种地方广泛使用,因此熟悉掌握字符串的属性和方法,是OC必不可少的基础之一。

字符串分为可变字符串(NSMutableString)和不可变字符串(NSString),首先我们来学习不可变字符串的属性与方法。

一、不可变字符串

1.创建不可变字符串

主要有四种方法:

1.

  2.

  3.

  4.

2.获取字符串的长度,获取字符串的长度我们可以使用字符串的length属性,可以以此判断字符串是否为空

3.查找子字符串

  1.从字符串开头查找到你的索引位置(包含索引位置)

  2.从索引位置到结束(不包含索引位置)

  3.查找某个范围内的子字符串

4.字符串的比较,一般有两种方法,一种是调用方法isEqualToString,另一种是使用关键字NSComparisionResult,里面有compare方法,调用这个方法,返回的结果为一个枚举类型:NSOrderedAscending(升序), NSOrderedSame(等), NSOrderedDescending(降序)

5. 两个对象的比较

NSString *ob1 = @"Jack";

NSString *ob2 = @"jacken";

Person *p1 = [[Person new] autorelease];

Person *p2 = [[Person new] autorelease];

//注意:p1和p2不是一个对象 只是名字相同而已

//        p1.name = @"Jack";

//        p2.name = @"Jack";

//当一个对象被添加到一个集合里面(NSArray NSDictionary NSSet)

//这个对象的引用计数+1

NSArray *pArray = @[p1];

p1.name = @"Jack";

NSLog(@"%@", ((Person *)pArray[0]).name);

if ([p1 isEqual:pArray[0]]) {

NSLog(@"是同一个对象");

} else{

NSLog(@"不是同一个对象");

}

输出的是:是同一个对象

6.判断字符串是否有某一个前缀和后缀

7.是否包含一个字符串

8.子字符串的具体位置和长度

9.将字符串转换成其他类型,有两种方法,一是强制类型转换,即下面的第一种,二是以initWithFormat的方式创建一个新的字符串,即下面的第二种方法

//字符串的数字 转化为对应的类型doubleValue floatValue

NSString *numStr = @"123";

int num = [numStr intValue];

NSString *ntr = [NSString stringWithFormat:@"%d", age];

二、可变字符串

  可变字符串相对于不可变字符串,增加的功能主要有增、删、改、插(插入)。

1.创建可变字符串

2.增

3.删

4.改

 

5.插

6.重置字符串

  输出结果:

  

OC中NSString的使用、字符串的使用的更多相关文章

  1. OC中NSString 的常用方法

    NSString *str1 = @"BeiJing"; NSString *str2 = @"beijing"; //全部转为大写 NSLog(@" ...

  2. OC中的NSNumber、NSArray、NSString的常用方法

    和C语言不同,在Objective-C语言中,有单独的字符串类NSString.C语言中,string是由 char(ASCLL码)字符组成 OC中,字符串是由unichar(Unicode)字符组成 ...

  3. OC中的字符串常用方法

    OC中的字符串常用方法 OC中对字符串进行操作使用了Foundation框架中的NSString类(不可变).NSMutableString类(可变). NSString 1.创建字符串 [objc] ...

  4. oc中调用c函数 实现将字符串转换成unsigned char

    帮助码友解决问题,从而复习了一下oc中调用c函数的方式 1,新建c 头文件  test.h 定义 c 函数 #ifndef test_h #define test_h void verificatio ...

  5. OC中加载html5调用html方法和修改HTML5内容

    1.利用webView控件加载本地html5或者网络上html5 2.设置控制器为webView的代理,遵守协议 3.实现代理方法webViewDidFinishLoad: 4.在代理方法中进行操作H ...

  6. Swift: 比较Swift中闭包传值、OC中的Block传值

    一.介绍 开发者对匿名函数应该很清楚,其实它就是一个没有名字的函数或者方法,给人直观的感觉就是只能看到参数和返回值.在iOS开发中中,它又有自己的称呼,在OC中叫Block代码块,在Swift中叫闭包 ...

  7. OC 初识NSString,self关键字,继承,成员变量的可见性,description方法

    OC 初识NSString,self关键字,继承,成员变量的可见性,description方法 初识 NSString: char * string = "旭宝爱吃鱼"; 常量字符 ...

  8. OC中intValue要注意的地方

    在程序中,发现一个问题,写了个例子,如下:         NSDictionary * dict = [[NSDictionary alloc] init];        NSString * s ...

  9. OC中控制台日志打印

    OC中Debug版本常用的打印格式化操作   %@ 对象   %d,%i 整型 (%i的老写法)   %hd 短整型   %ld , %lld 长整型   %u 无符整型   %f 浮点型和doubl ...

随机推荐

  1. 堡垒机升级V3.2.14

  2. react 环境安装

    React 使用了ES6标准的JSX(script标签type为text/babel),但目前很多浏览器只支持ES5,所以我们就需要将JSX转成普通JS.在生产环节中,通常直接将JSX编译为JS,但简 ...

  3. 编写一个 rpc

    手动编写一个 RPC 调用 package com.alibaba.study.rpc.framework; import java.io.ObjectInputStream; import java ...

  4. 基于bootstrap的datepicker

    <script src="<%=path %>/js/bootstrap-datepicker.min.js"/> <script src=" ...

  5. 解决Oracle数据库空间不足问题

    //查询表空间的大小以及文件路径地址select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space ...

  6. 对TCP三次握手的思考

    从第一次了解到TCP的连接方式到现在有一年半了,但好像一直没有把三次握手的由来弄透彻,解释上总有一些瑕疵在,现在来说说昨晚的思考. 对于一个通信链路,由于种种原因发送方发送的消息未必能传达到接收方,所 ...

  7. mapreduce 学习笔记

    mapreduce基础概念 mapreduce是一个分布式计算框架(hadoop是mapreduce框架的一个免费开源java实现). mapreduce要点 主节点(master node)控制ma ...

  8. Ubuntu16.04 藍牙連上,但是聲音裏面找不到設備

    解決辦法: 1. sudo apt-get install blueman bluez* 2. sudo vim /etc/pulse/default.pa 注釋掉下面的代碼: #.ifexists ...

  9. CentOS7 安装并配置MySQL8.0

    安装环境 linux版本:CentOS 7.6 x64 Mysql:8.0 在CentOS中默认安装有MariaDB,但是我们需要的是MySQL,安装MySQL可以覆盖MariaDB. MariaDB ...

  10. How to find SPRO path by t-code name

    e.g:OB58 F1->Technical Information Find Table Name->V_T011 3.SM30 V_T011 Customizing Continue ...