Objective c NSString搜索子字符串/csv文件IO
这让我很头疼。无论出于何种原因,当我使用此代码时,if语句的计算结果始终为false:Objective c NSString搜索子字符串/csv文件IO,objective-c,ios,file-io,if-statement,substring,Objective C,Ios,File Io,If Statement,Substring,这让我很头疼。无论出于何种原因,当我使用此代码时,if语句的计算结果始终为false: while(!feof(file)) { NSString *line = [self readNSString:file]; NSLog(@"%@", line); NSLog(@"%@", search); NSRange textRange; textRange =[line rangeOfString:search]; if(textRange.loc
while(!feof(file))
{
NSString *line = [self readNSString:file];
NSLog(@"%@", line);
NSLog(@"%@", search);
NSRange textRange;
textRange =[line rangeOfString:search];
if(textRange.location != NSNotFound)
{
NSString *result = [line substringFromIndex:NSMaxRange([line rangeOfString:search])];
resultView.text = result;
}
else
{
resultView.text = @"Not found";
}
}
当函数执行时,两个nslog告诉我“line”和“search”字符串应该是什么,那么为什么if语句的计算结果总是为false呢?我一定错过了一些简单的东西,再多看一眼就好了。谢谢
编辑:(函数“readNSString”)
编辑2:
通过调用第一个函数设置搜索,并使用NSString*变量作为参数,如下所示:
NSString *textFieldText = [[NSString alloc]
initWithFormat:@"%@", textField.text];
[self readFile:textFieldText];
编辑3(NSLogs输出)
线路:德国意大利法国
搜索:Italy我认为您正确地使用了
rangeOfString
和NSNotFound
等,因此问题可能与使用appendFormat:@“%s”从文件读取的数据创建字符串有关
我怀疑您的两种字符串格式之间可能存在编码问题-我将调查“%s”是否使用适当的编码将以null结尾的C字符串正确编码为与unicodeNSString
相同的格式
尝试将您从readNSString
函数中获得的值编码为代码中的字符串文字,仅用于测试,并查看比较是否有效,如果有效,这可能表明这可能与文件中创建的字符串的编码有关。您想做什么?阅读CSV文件?你能说明如何设置“搜索”吗?您看到了什么来确保它设置为应该设置的值?搜索是通过将文本字段的文本指定给nsstring来设置的。我发布的第一个函数中的NSLog显示了我在函数运行时发送给它的编号。您可以显示NSLog输出吗?是的,显示这两个NSLog的输出。
NSString *textFieldText = [[NSString alloc]
initWithFormat:@"%@", textField.text];
[self readFile:textFieldText];