Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 比较物品的NSString核算(即“the”和“a”)_Objective C_Cocoa_Cocoa Touch_Comparison_Nsstring - Fatal编程技术网

Objective c 比较物品的NSString核算(即“the”和“a”)

Objective c 比较物品的NSString核算(即“the”和“a”),objective-c,cocoa,cocoa-touch,comparison,nsstring,Objective C,Cocoa,Cocoa Touch,Comparison,Nsstring,我原以为caseinsensitiveLocalizedCompare:会考虑这个问题(在比较中不包括“the”和“a”),但事实并非如此 (另外,对于下面的第一个答案,我理解“不区分大小写”部分没有帮助,但我认为“本地化”部分可能会有所帮助 我找不到任何选项可以这样做,谷歌是无法使用的,因为我正在搜索“的”和“a” 我想,既然这很普遍,可可中就会有某种东西存在 我正在实现我自己的方法,但我认为有一种内置的方法可以做到这一点。当您想知道Cocoa是否支持某些东西时,通常可以查看本例中的文档 在实

我原以为caseinsensitiveLocalizedCompare:会考虑这个问题(在比较中不包括“the”和“a”),但事实并非如此

(另外,对于下面的第一个答案,我理解“不区分大小写”部分没有帮助,但我认为“本地化”部分可能会有所帮助

我找不到任何选项可以这样做,谷歌是无法使用的,因为我正在搜索“的”和“a”

我想,既然这很普遍,可可中就会有某种东西存在


我正在实现我自己的方法,但我认为有一种内置的方法可以做到这一点。

当您想知道Cocoa是否支持某些东西时,通常可以查看本例中的文档


在实现此功能时,请不要忘记将文章列表放入应用程序包中的本地化资源文件中,以便本地化程序能够以自己的语言提供可剥离文章的列表。按需加载该文件,并在整个过程中保留该文件。或者,对于某些内容(例如,乐队名称),最好有一个包含所有已知文章的单一文件。

当您想知道Cocoa是否支持某些内容时,通常可以查看本例中的文档


在实现此功能时,请不要忘记将文章列表放入应用程序包中的本地化资源文件中,以便本地化程序能够以自己的语言提供可剥离文章的列表。按需加载该文件,并在整个过程中保留该文件。或者,对于某些内容(例如,乐队名称),最好有一个包含所有已知文章的单一文件。

为了完整起见,下面是我用于解决“对对象排序”问题的代码。请将其添加到NSString上的类别中

- (NSComparisonResult)localizedCaseInsensitiveExcludeTheCompare:(NSString*)aString{

    NSString* firstString = [self stringByRemovingArticlePrefixes];
    aString = [aString stringByRemovingThePrefixes];

    return [firstString localizedCaseInsensitiveCompare:aString];    

}

- (NSString*)stringByRemovingThePrefixes{

    if([self length] < 5)
        return self; 

    NSString* aString = [self copy];

    if([[aString substringToIndex:4] doesContainString:@"The "]){

        aString = [aString substringFromIndex:4];
        aString = [aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

    }else if([[aString substringToIndex:4] doesContainString:@"the "]){

        aString = [aString substringFromIndex:4];
        aString = [aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    }

    return [aString autorelease];
}
-(NSComparisonResult)本地化CaseInsensitiveExcludeTheCompare:(NSString*)aString{
NSString*firstString=[self-stringByRemovingArticlePrefixes];
aString=[aString string by removing the prefixes];
返回[firstString localizedCaseInsensitiveCompare:aString];
}
-(NSString*)通过删除前缀来设置字符串{
如果([自身长度]<5)
回归自我;
NSString*aString=[自复制];
如果([[aString Substring to Index:4]不包含@“The”]){
aString=[aString substringFromIndex:4];
aString=[aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
}如果([[aString Substring to Index:4]不包含@“the”]){
aString=[aString substringFromIndex:4];
aString=[aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
}
返回[自动释放];
}

为了完整起见,下面是我用于解决“对对象排序”问题的代码。请将其添加到NSString上的类别中

- (NSComparisonResult)localizedCaseInsensitiveExcludeTheCompare:(NSString*)aString{

    NSString* firstString = [self stringByRemovingArticlePrefixes];
    aString = [aString stringByRemovingThePrefixes];

    return [firstString localizedCaseInsensitiveCompare:aString];    

}

- (NSString*)stringByRemovingThePrefixes{

    if([self length] < 5)
        return self; 

    NSString* aString = [self copy];

    if([[aString substringToIndex:4] doesContainString:@"The "]){

        aString = [aString substringFromIndex:4];
        aString = [aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

    }else if([[aString substringToIndex:4] doesContainString:@"the "]){

        aString = [aString substringFromIndex:4];
        aString = [aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    }

    return [aString autorelease];
}
-(NSComparisonResult)本地化CaseInsensitiveExcludeTheCompare:(NSString*)aString{
NSString*firstString=[self-stringByRemovingArticlePrefixes];
aString=[aString string by removing the prefixes];
返回[firstString localizedCaseInsensitiveCompare:aString];
}
-(NSString*)通过删除前缀来设置字符串{
如果([自身长度]<5)
回归自我;
NSString*aString=[自复制];
如果([[aString Substring to Index:4]不包含@“The”]){
aString=[aString substringFromIndex:4];
aString=[aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
}如果([[aString Substring to Index:4]不包含@“the”]){
aString=[aString substringFromIndex:4];
aString=[aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
}
返回[自动释放];
}

我确实读过,但不知道我是否遗漏了一些看起来很基本的东西。感谢这些提示,我已经开始实现这一点了。没有公共功能可以实现这一点。但是,苹果确实实现了这一功能。最明显的用法是在iTunes中。在iTunes软件包中翻找,你会发现本地化文件
SortPrefixes.plist
。这可以让你开始(道德上有点可疑)本地化版本。:)我确实读过,但不知道我是否遗漏了一些看起来很基本的东西。谢谢你的提示,我已经在实现这个功能的路上了。没有公共功能可以做到这一点。不过,苹果确实实现了这个功能。最明显的用法是在iTunes中。仔细查看iTunes软件包,你会发现本地化文件
sortprefix.plist
。这可以让你开始(道德上有点可疑)本地化版本。:)