【问题标题】:Can I restrict capitalizedString not to capitalising superscript text in ios我可以限制大写字符串不在ios中大写上标文本吗
【发布时间】:2016-12-12 06:10:40
【问题描述】:

当我将大写字符串应用于字符串时,我不想将上标大写。有什么解决办法还是我需要手动解决?

NSStirng *title = @"25th event annual";
title = [title capitalizedString] ;

// Current output 
25Th Event Annual

// Needed output
25th Event Annual

【问题讨论】:

    标签: ios objective-c nsstring


    【解决方案1】:

    你可以为此使用一些技巧

    NSStirng *title = @"25th event annual";
    title = [title capitalizedString]; // 25TH Event Annual
    NSString *finaltitle = [title stringByReplacingOccurrencesOfString:@"Th"
                                         withString:@"th"]; // 25th Event Annual
    

    但是当您的原始字符串中没有 Th 时,这将正常工作。或者使用下标函数并将部分字符串设为大写并再次连接它。在这种情况下,ivarun 的答案将起作用。

    【讨论】:

    • 这可能有效,但我认为它将用我不想要的 th 替换所有 Th。但很好的尝试感谢@Pushkraj
    【解决方案2】:

    这里是解决方案。

    NSString *title = @"25th event annual";
    NSRange rng = [title rangeOfString:@" "];
    NSString *first = [title substringToIndex:rng.location];
    NSString *last = [title substringFromIndex:rng.location + 1];
    NSString  *lastPart = [last capitalizedString];
    NSString *fullString = [NSString stringWithFormat:@"%@ %@",first,lastPart];
    

    你想要的输出:D

    第 25 届年度盛会

    希望它对你有用。 :)

    【讨论】:

    • 您的解决方案是特定于字符串的!!我可以有任何字符串,如@“my 20th brthdy blah blah”。带有数字的字符串不必总是在第一个。顺便谢谢ivarun
    • @Bhumika 是的。我认为你也应该提到这个问题。不是吗? :P
    • 作为开发人员,您应该会自动想到这个问题,对吧? :p
    • @Bhumika 我没那么聪明 :D 喜欢你 :P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    相关资源
    最近更新 更多