如标题所述,我需要以如下格式设置文本字符串:“你好,世界。你好吗?”进入“你好,世界。你好吗?”,在iOS中有没有标准的方法可以做到这一点?还是有示例代码?

谢谢!

最佳答案

没有直接的方法可以将段落中句子的首字母大写。 NSString仅有一个大写的方法capitalizedString,每个词都大写。您必须创建自己的逻辑来实现这一目标。您可以尝试以下代码。

- (NSString *)captilizeParagraph:(NSString *)paragraph {

    if ([paragraph length] == 0) return paragraph;
    NSArray *sentences = [paragraph componentsSeparatedByString:@". "];
    NSMutableArray *capitalizedSentences = [NSMutableArray array];

    for (NSString *sentence in sentences) {

        sentence = [sentence lowercaseString];
        sentence = [sentence stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:[[sentence substringToIndex:1] uppercaseString]];
        [capitalizedSentences addObject:sentence];
    }

    NSString *capitalizedParagrah = [capitalizedSentences componentsJoinedByString:@". "];
    return capitalizedParagrah;
}


注意:上面的代码假定段落中的所有句子都以字符". "(点和空格)结尾,但最后一个句子除外(可以以任何字符结尾)。如果句子以其他字符如"? ""! "结尾,则此方法将返回格式不正确的字符串。

关于objective-c - 格式化“HELLO,WORLD”中的文本。您好吗?”改为“你好,世界。你好吗?”在ObjC(iOS)中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6773545/

10-10 21:08