## iOS中containsString和rangeOfString的区别小结

本文将对iOS中`containsString`和`rangeOfString`的两种方法进行详细对比,以便更好地理解和使用它们。

#### 1. containsString

##### 1.1 查找字符串是否包含“iOS”

```swift

NSString *str = @"我是iOS开发工程师";

if ([str containsString:@"iOS"]) {

NSLog(@"包含'iOS'");

} else {

NSLog(@"不包含'iOS'");

}

```

##### 1.2 `containsString`适用于iOS8系统,在iOS7及以下版本下会崩溃

由于`containsString`是iOS8新增的功能,因此在iOS7及以下版本的系统中无法使用。如果在这些版本的系统中尝试使用`containsString`,程序会崩溃。为了兼容这些低版本的系统,开发者需要使用`rangeOfString`方法代替。

##### 1.3 `containsString`功能简单单一

`containsString`方法只能判断一个字符串是否包含另一个字符串,功能相对简单。

#### 2. rangeOfString

##### 2.1 查找字符串中的“iOS”位置

```swift

NSString *str = @"我是iOS开发工程师";

NSRange range = [str rangeOfString:@"iOS"];

if (range.location != NSNotFound) {

NSLog(@"找到'iOS',位置为:%ld", (long)range.location);

} else {

NSLog(@"未找到'iOS'");

}

```

##### 2.2 `rangeOfString`功能复杂多样,可遍历整个字符串

与`containsString`相比,`rangeOfString`功能更为复杂,可以用于遍历整个字符串。例如,可以通过设置`options`参数来实现不同的匹配模式(如忽略大小写、只匹配前缀等)。同时,`rangeOfString`还可以获取到匹配到的子串的位置信息。