gpt4 book ai didi

ios - 在 NSString 中查找与另一个字符的位置相关的字符的位置

转载 作者:行者123 更新时间:2023-11-29 01:26:29 27 4
gpt4 key购买 nike

假设我有一个包含如下数据的txt文件;

12345,123,98765,JOHN,RL,s/w
12345,123,98765,SAM,RL,s/w
12345,123,98765,MIC,RL,s/w
12345,123,98765,MIC,RL,s/w
12345,123,98765,MIC,RL,s/w
12345,123,98765,MIC,RL,s/w
12345,123,98765,MIC,RL,s/w
12345,123,98765,AMI,RL,s/w
12345,123,98765,THIMOTHY,RL,s/w

它捆绑在我的应用程序中,我正在将数据读取到 nsstring。我正在传递一个搜索词,说“MIC”。当我传递这个搜索词时,我想获取包含搜索词的行并从字符串中删除所有其他行。

我尝试过以下代码:

NSString *searchTerm = @"MIC";
NSRange rangess = [dataToBeParsed rangeOfString:searchTerm];

NSRange range = [dataToBeParsed rangeOfString:@"" options:NSBackwardsSearch range:rangess];
NSLog(@"range.location: %lu", range.location);
NSString *substring = [dataToBeParsed substringFromIndex:range.location+1];
NSLog(@"substring: \n%@'", substring);

我能够找到搜索词的位置并清除字符串内容直到搜索位置。但我想得到完整的线路。

注意:在我的原始文档中,具有搜索词的行将在文档中连续列出。

请帮忙。

最佳答案

NSString *string        = stringDataToBeParsed;
NSArray *components = [string componentsSeparatedByString:@"\n"];
NSMutableArray *array = [NSMutableArray new];

for (NSString *string in components)
{
if ([string containsString:searchTerm])
{
[array addObject:string];
}
}

NSString *stringWithSearchLinesOnly = [array componentsJoinedByString:@"\n"];

如果上面的速度不够快,那么在 Objective-c 中你真的不能比这更快:

NSString *string             = stringDataToBeParsed;
NSMutableArray *mutableArray = [NSMutableArray new];

[string enumerateLinesUsingBlock:^(NSString * _Nonnull line, BOOL * _Nonnull stop)
{
if ([line containsString:searchTerm])
{
[mutableArray addObject:line];
}
}];

NSString *stringWithSearchLinesOnly = [mutableArray componentsJoinedByString:@"\n"];

关于ios - 在 NSString 中查找与另一个字符的位置相关的字符的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33942054/

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