所以,如果你有一个NSString:

@"My blue car is bigger than my blue shoes or my blue bicycle";

我想要一种仅用绿色替换蓝色的第一个实例的方法,以产生:

@"My green car is bigger than my blue shoes or my blue bicycle";

这是怎么做到的?

推荐答案

假设以下输入:

NSString *myString = @"My blue car is bigger then my blue shoes or my blue bicycle";
NSString *original = @"blue";
NSString *replacement = @"green";

算法非常简单:

NSRange rOriginal = [myString rangeOfString:original];

if (NSNotFound != rOriginal.location) {
    myString = [myString stringByReplacingCharactersInRange:rOriginal withString:replacement];
}

Objective-c相关问答推荐

如何使用 iOS 7 SpriteKit 粒子向非游戏的 iOS 应用程序添加粒子效果?

目标 C:什么是(id)发件人?

将谷歌 map 添加为子视图会使 iOS 应用程序因 exc_bad 崩溃

Objective-C 和 Cocoa 有什么区别?

dispatch_get_global_queue 和 dispatch_queue_create 有什么区别?

将 CFDictionaryRef 转换为 NSDictionary?

.delegate=self 是什么意思?

我们可以在 UIPageViewController 中自定义页面指示器吗?

在 iPhone 应用程序中使用 RestKit 的最佳方式

无法访问 dispatch_async 中的全局变量:变量不可赋值(缺少 _block 类型说明符)

如何保存我的 iPhone 应用程序的用户首选项?

NSSet 到 NSArray 转换调用 objectAtIndex?

使用 OpenCV 在 iOS 中进行透视变换 + 裁剪

在 switch 语句中使用 NSString

cellForRowAtIndexPath 是如何工作的?

为什么 Select Emacs/Vim/Textmate? Xcode 还不够好吗?

ARC 下的 NSString 属性应该是强的还是复制的?

xcode 5.1 中的 Arm64 架构

@package 指令在 Objective-C 中的作用是什么?

如何在 Objective-c 中将数组声明为常量?