gpt4 book ai didi

ios - NSString 根据数值拆分字符串

转载 作者:行者123 更新时间:2023-11-28 19:56:08 25 4
gpt4 key购买 nike

我希望在拆分我的一个 NSString 值时得到一些帮助。请考虑以下事项:

NSString *string = @"_o_t_d_n__";

基本上,我想根据下面存储在 NSArray 中的数字分隔符将上面的 NSString *string 分成 3 个单独的字符串值:

NSArray *values = [NSArray arrayWithObjects: @3, @2, @5];

然后会根据这些分隔符值产生以下结果:

3 = @"_o_"
2 = @"t_"
6 = @"d_n__"

循环遍历此数组并根据数组中包含的数值对字符串进行分段的最佳方法是什么?

最佳答案

试试这个:

NSArray *array = @[@(3),@(2),@(5)];
NSUInteger loc = 0;
for (int i = 0; i < [array count]; i++) {
NSUInteger len = [[array objectAtIndex:i] unsignedIntegerValue];
NSString *subStr = [string substringWithRange:NSMakeRange(loc, len)];
loc += len;
}

如果要遍历NSString,做一个char指针,比第一种方法稍微快一些。

NSString *string = @"_o_t_d_n__";
const char *c = [string cStringUsingEncoding:NSUTF8StringEncoding];
char *myData = calloc(3, 1);
for (int i = 0, j = 0; i < [string length]; i++, j++) {
myData[j] = c[i];
if (i == 2 || i == 4 || i == 9) {
NSString *string = [[NSString alloc] initWithBytes:myData length:sizeof(myData) encoding:NSUTF8StringEncoding];
NSLog(@"%@",string);
if (i == 2) myData = realloc(myData, 2);
if (i == 4) myData = realloc(myData, 5);
j = -1;
}
}
free(myData);

关于ios - NSString 根据数值拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26311466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com