如何检查一个单词是否在字典中?

发布于 2024-11-28 20:11:36 字数 132 浏览 1 评论 0原文

我正在从预加载的核心数据数据库加载字符串,该数据库恰好都是大写字母。

我想检查每个单词是否在英语词典中,如果是,则尝试像常规句子一样将其小写,如果没有,则将其保持大写(用于缩写等)。

iOS 4 有办法做到这一点吗?

I'm loading strings from a preloaded core data database which happen to be all CAPITAL.

I want to check if each word is in the English dictionary, and if so try to lowercase it like a regular sentence, if not keep it upper case (for abbreviations and such).

Is there a way to do this with iOS 4?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

绝情姑娘 2024-12-05 20:11:36

诺亚答案的实现:

-(BOOL) isDictionaryWord:(NSString*) word 
{
    UITextChecker *checker = [[UITextChecker alloc] init];
    NSLocale *currentLocale = [NSLocale currentLocale];
    NSString *currentLanguage = [currentLocale objectForKey:NSLocaleLanguageCode];
    NSRange searchRange = NSMakeRange(0, [word length]);
    NSRange misspelledRange = [checker rangeOfMisspelledWordInString:word range: searchRange startingAt:0 wrap:NO language: currentLanguage ];
    return misspelledRange.location == NSNotFound;
}

NSString string = @"lalala";
if ([self isDictionaryWord:string]) string = [string lowercaseString];

Implementation for Noah's answer:

-(BOOL) isDictionaryWord:(NSString*) word 
{
    UITextChecker *checker = [[UITextChecker alloc] init];
    NSLocale *currentLocale = [NSLocale currentLocale];
    NSString *currentLanguage = [currentLocale objectForKey:NSLocaleLanguageCode];
    NSRange searchRange = NSMakeRange(0, [word length]);
    NSRange misspelledRange = [checker rangeOfMisspelledWordInString:word range: searchRange startingAt:0 wrap:NO language: currentLanguage ];
    return misspelledRange.location == NSNotFound;
}

NSString string = @"lalala";
if ([self isDictionaryWord:string]) string = [string lowercaseString];
呆头 2024-12-05 20:11:36

从 iOS 3.2 开始,您可以使用 UITextChecker 类来访问系统字典。使用其 -rangeOfMisspelledWordInString:range:startingAt:wrap:language: 方法:如果它返回 locationNSNotFound 的范围,则所有单词您提供的字符串在字典中或者已经被文本检查器“学习”。

As of iOS 3.2, you can use the UITextChecker class to access the system dictionary. Use its -rangeOfMisspelledWordInString:range:startingAt:wrap:language: method: if it returns a range whose location is NSNotFound, all of the words in the string you provided are in the dictionary or have already been “learned” by the text checker.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文