在 Objective-C 中大写或更改 NSString 的大小写
Posted
技术标签:
【中文标题】在 Objective-C 中大写或更改 NSString 的大小写【英文标题】:Capitalize or change case of an NSString in Objective-C 【发布时间】:2011-08-01 00:01:03 【问题描述】:我想知道如何将在NSMutableArray
中的对象中找到的字符串大写。
NSArray
在索引 2 处包含字符串 'April'
。
我希望将其更改为'APRIL'
。
有这样简单的东西吗?
viewNoteDateMonth.text = [[displayDate objectAtIndex:2] capitalized];
【问题讨论】:
【参考方案1】:以防万一有人在 swift 中需要上述内容:
SWIFT 3.0 及以上版本:
这将使您的字符串大写,将第一个字母大写:
viewNoteDateMonth.text = yourString.capitalized
这将使您的字符串大写,使所有字符串大写:
viewNoteDateMonth.text = yourString.uppercased()
【讨论】:
【参考方案2】:来吧:
viewNoteDateMonth.text = [[displayDate objectAtIndex:2] uppercaseString];
顺便说一句:"april"
是 lowercase
➔ [NSString lowercaseString]"APRIL"
是 UPPERCASE
➔ [NSString uppercaseString]"April May"
是 Capitalized/Word Caps
➔ @98765432 "April may"
是 Sentence caps
➔ (缺少方法;请参阅下面的解决方法)
因此您想要的称为“大写”,而不是“大写”。 ;)
至于“句子大写”,必须记住,“句子”通常意味着“整个字符串”。如果您希望获得真正的句子,请使用下面的第二种方法,否则请使用第一种:
@interface NSString ()
- (NSString *)sentenceCapitalizedString; // sentence == entire string
- (NSString *)realSentenceCapitalizedString; // sentence == real sentences
@end
@implementation NSString
- (NSString *)sentenceCapitalizedString
if (![self length])
return [NSString string];
NSString *uppercase = [[self substringToIndex:1] uppercaseString];
NSString *lowercase = [[self substringFromIndex:1] lowercaseString];
return [uppercase stringByAppendingString:lowercase];
- (NSString *)realSentenceCapitalizedString
__block NSMutableString *mutableSelf = [NSMutableString stringWithString:self];
[self enumerateSubstringsInRange:NSMakeRange(0, [self length])
options:NSStringEnumerationBySentences
usingBlock:^(NSString *sentence, NSRange sentenceRange, NSRange enclosingRange, BOOL *stop)
[mutableSelf replaceCharactersInRange:sentenceRange withString:[sentence sentenceCapitalizedString]];
];
return [NSString stringWithString:mutableSelf]; // or just return mutableSelf.
@end
【讨论】:
【参考方案3】:viewNoteDateMonth.text = [[displayDate objectAtIndex:2] uppercaseString];
文档:http://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/uppercaseString
您也可以使用lowercaseString 和capitalizedString
【讨论】:
以上是关于在 Objective-C 中大写或更改 NSString 的大小写的主要内容,如果未能解决你的问题,请参考以下文章
从 Objective-C 桥接到 swift 时,swift 编译器如何识别变量是复制的还是强的?
在 Haskell 中写或不写 `module Main where`
在 Objective-C 中更改 Javascript 变量