文档章节

多次替换字符串处理

w
 win_pass
发布于 2015/08/19 19:41
字数 170
阅读 23
收藏 0

第一种(有发生替换):

NSString *s = @"sss";
NSString *x = [s stringByReplacingOccurrencesOfString:@"s" withString:@"x"];
NSLog(@"%@",x);


返回一个新的指针,内容是@"xxx"。新指针的retainCount是1,不可以手动release,会autorelease。



第二种(没有发生替换):

NSString *s = @"sss";
NSString *x = [s stringByReplacingOccurrencesOfString:@"y" withString:@"x"];
NSLog(@"%@",x);

因为没有发生替换,所以返回值还是原来的指针,内容还是@"sss"。这时候s的retainCount会被加1。
相当于

NSString *x = [[s retain]autorelease];



建议:

如果需要多次替换字符串中的字符,最好不要使用stringByReplacingOccurrencesOfString。应该使用NSMutableString的实例方法

NSString *s = @"sss";
NSString *x = [s stringByReplacingOccurrencesOfString:<#(nonnull NSString *)#> withString:<#(nonnull NSString *)#> options:<#(NSStringCompareOptions)#> range:<#(NSRange)#>]

 

© 著作权归作者所有

w
粉丝 0
博文 121
码字总数 19932
作品 0
广州
私信 提问
underscore 系列之实现一个模板引擎(下)

前言 本篇接着上篇 underscore 系列之实现一个模板引擎(上)。 鉴于本篇涉及的知识点太多,我们先来介绍下会用到的知识点。 反斜杠的作用 我们的本意是想打印带 包裹的 字符串,但是在 JavaSc...

冴羽
2018/01/25
0
0
Python 字符串和正则表达式的使用

1.字符串 1.1字符串的格式化 #格式化语法"%s" % str1"%s %s" % (str1,str2) #格式化字符串 str1 = "version"num = 1.0format = "%s" % str1print (format)format = "%s %d" %(str1, num)prin......

阿豪boy
2018/02/16
38
0
Python中正则表达式(re模块)的使用

Python中正则表达式(re模块)的使用 1、正则表达式的概述 (1)概述:正则表达式是一些由字符和特殊符号组成的字符串,他们描述了模式的重复或者表示多个字符,正则表达式能按照某种模式匹配...

Dayi_123
2017/05/05
0
0
JavaScript 字符串【整合】

JavaScript 字符串用于存储和处理文本。因此在编写 JS 代码之时总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Date 时,诸此...

IT智云编程
2018/10/26
0
0
JavaScript 字符串常用操作纪要

JavaScript 字符串用于存储和处理文本。因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Date 时,诸...

jeffjade
2017/01/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
65
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部