当前位置: 首页 > news >正文

OC字符串常用函数

创建一个字符串对象:

1
2
3
4
5
6
7
8
9
NSstring  * str1 = @ "hello" ;
NSString  * str = [[ NSString  alloc]initWithString:@ "hello world!" ];
NSString  * str_1 = [[ NSString  alloc]initWithUTF8String: "hello world" ]; //把C的字符串转化为OC的字符串
int  a = 123;
NSString  * str_3 = [[ NSString  alloc]initWithFormat:@ "a = %d %s%@" , a,  "abcd" , @ "efg" ]; //用格式化字符串初始化
//可完成字符串的拼接以及完成C的字符串与OC的字符串的转化
NSString  * str1 = [ NSString  stringWithString:@ "hello world" ];
NSString  * str2 = [ NSString  stringWithUTF8String: "hello world" ];
NSString  * str3 = [ NSString  stringWithFormat:@ "%s" , "hello world" ];

 

字符串转化:

1
2
3
4
5
6
7
NSString  * str = @ "hello" ;
const  char  *p = [str UTF8String];将OC字符串转化为C的字符串
 
str = @ "123" ;
int  a = [str intValue]; //将数字串转化成整型数据
     [str floatValue]; //将数字串转化成float型
         [str doubleValue]; //将数字串转化成double型

 

常用的NSString Message(OC 的字符 :typedef unsigned short unichar)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
NSLog (@ "%ld" ,[str1 length]);    //求字符串长度
 
NSLog (@ "%c" , [str1 characterAtIndex:1]); //获取字符串中的字符
 
BOOL  ret =  [str1 isEqualTo:str2]; //比较两个字符串是否相等,相等返回YES(1),不相等返回NO(0)   (BOOL   YES(1)  NO(0))
 
long  ret1 = [str1 compare:str2]; //比较两个字符串的大小,str1大于 返回1  相等返回0   小于返回-1
 
long  ret2 = [str1 caseInsensitiveCompare:str2]; //不区分大小写比较字符串大小
 
NSString  * ptr = [str2 uppercaseString]; //将字符串中的所有小写字符转换成大写 不改变原来的字符串
 
ptr = [str1 lowercaseString]; //将字符串中的所有大写字符转换成小写 不改变原来的字符串
 
ptr = [str3 capitalizedString]; //将字符串中出现的第一个字母转换成大写,其余字母小写
 
NSString  * str4 = @ "hello world" ;
 
NSRange  range = [str4 rangeOfString:@ "wr" ]; //查找子串,找不到返回NSNotFound 找到返回location和length
 
if  (range.location !=  NSNotFound ) {
 
     NSLog (@ "%ld %ld" ,range.location, range.length);
 
}
 
NSString  * str5 = @ "helloworld" ;
 
NSString  * ptr1 = [str5 substringToIndex:4]; //字符串抽取 从下标0开始到4 不包括4
 
NSString  * ptr2 = [str5 substringFromIndex:5]; //从下标5开始抽取到字符串结束 包括5
 
NSRange  range1 = {4,3}; //结构体初始化
 
NSString  * ptr3 = [str5 substringWithRange:range1]; //在range指定范围内抽取
 
NSString  * ptr4 = [str5 substringWithRange: NSMakeRange (4,3)]; //NSMakeRange可以生成一个结构体
 
 
 
NSString  * str = @ "www.1000phone.com" ;
 
BOOL  ret = [str hasPrefix:@ "www" ]; //判断字符串是否以指定字符串开头
 
 
 
NSString  * str1 = @ "1.txt" ;
 
BOOL  ret1 = [str hasSuffix:@ ".txt" ]; //判断字符串是否以指定的字符串结尾
 
 
 
NSMutableString 可变字符串(动态增加和减少的)   继承于 NSString 可以使用 NSString 的所有方法
 
NSMutableString  * str =  [[ NSMutableString  alloc]initWithString:@ "hello" ]; //将不可变的字符串转换为可变的字符串
 
[str insertString:@ "123"  atIndex:1]; //在指定下标(不要越界)位置插入NSString类型字符串
 
[str appendString:@ "123" ]; //在字符串末尾追加字符串
 
[str deleteCharactersInRange: NSMakeRange (0, 2)]; //从指定下标删除length个字符
 
[str setString:@ "qianfeng" ]; //修改字符串亦称对该可变字符串赋值
 
[str replaceCharactersInRange: NSMakeRange (3, 1) withString:@ "ios" ]; //将指定下标位置的length个字符替换为指定的字符串

 

 


本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/p/3452556.html,如需转载请自行联系原作者

相关文章:

  • 百度 语音识别 REST API
  • React Native移动开发实战-3-实现页面间的数据传递
  • Java利用序列化实现对象的深拷贝
  • How to run Java main class and pass application arguments in Maven?
  • Swift2.0语言教程之函数嵌套调用形式
  • Java中Action层、Service层、Modle层和Dao层的功能区分
  • mongodb中直接根据某个字段更新另外一个字段值
  • mysql 索引
  • 收集尝试登录到服务器的密码尝试失败的ip和次数
  • 谁的属性值优先被访问
  • 字符串拼接性能比较出乎意料的结果
  • P1038 神经网络
  • 了解Job和JobDeatil ,JobDataMap (三)
  • linux shell编程中的数组定义、遍历
  • MySQL 的wait_timeout参数
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • Java小白进阶笔记(3)-初级面向对象
  • js算法-归并排序(merge_sort)
  • KMP算法及优化
  • python3 使用 asyncio 代替线程
  • spring-boot List转Page
  • SpriteKit 技巧之添加背景图片
  • SwizzleMethod 黑魔法
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Vue UI框架库开发介绍
  • yii2中session跨域名的问题
  • 二维平面内的碰撞检测【一】
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 一、python与pycharm的安装
  • 用Canvas画一棵二叉树
  • 正则表达式
  • 智能网联汽车信息安全
  • MyCAT水平分库
  • PostgreSQL之连接数修改
  • 国内开源镜像站点
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • # Java NIO(一)FileChannel
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #162 (Div. 2)
  • $(selector).each()和$.each()的区别
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • .Net 8.0 新的变化
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化