NSArray
```objective-c
// 创建一个包含字符串的数组
NSArray
// 使用 "_" 作为分隔符,将数组中的元素拼接成一个新的字符串
NSString *str = [arr componentsJoinedByString:@"_"];
// 打印结果
NSLog(@"str : %@", str);
```
输出结果:
```
2019-07-03 10:03:16.937796+0800 AKTools[1744:35435] str : 1_2_3_4_5_6_7_8_9_10_11_12
```
此外,如果尝试使用 `NSNumber` 类型,也可以正常使用:
```objective-c
// 创建一个包含数字的数组
NSArray
// 使用 "+" 作为分隔符,将数组中的元素拼接成一个新的字符串
NSString *str = [arr componentsJoinedByString:@"+"];
NSLog(@"str : %@", str);
```
输出结果:
```
2019-07-03 10:20:46.066952+0800 AKTools[1957:42780] str : 1+2+3+4+5+6+7+8+9+10+11+1
你可以使用以下代码重构`componentsSeparatedByString`方法:
```objective-c
#import
@interface NSString (NSStringExtensionMethods)
/// 将字符串按照给定的字符分割成数组,注意看,这里的返回值泛型给定了NSString类型,也就是说返回的数组中的元素全部都是字符串,如果需要用数字的话,最好自己在做一些转换
- (NSArray
@end
@implementation NSString (NSStringExtensionMethods)
- (NSArray
NSMutableArray
NSRange range = [self rangeOfString:separator options:0 range:NSMakeRange(0, self.length)];
int startIndex = 0;
while (range.location != NSNotFound) {
int endIndex = range.location + range.length;
NSString *substring = [self substringWithRange:NSMakeRange(startIndex, endIndex - startIndex)];
[result addObject:substring];
startIndex = endIndex;
range = [self rangeOfString:separator options:0 range:NSMakeRange(startIndex, self.length - startIndex)];
}
if (startIndex < self.length) {
NSString *substring = [self substringWithRange:NSMakeRange(startIndex, self.length - startIndex)];
[result addObject:substring];
}
return result;
}
@end
```
使用示例:
```objective-c
NSString *testStr = @"1_2_3_4_5_6_7_8_9_10_11_12";
NSArray
NSLog(@"arr : %@", arr);
```
打印结果:
```
2019-07-03 10:10:02.263319+0800 AKTools[1824:38234] arr : (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
```