我正在开发一个 iPhone 应用程序。在标签中,我想显示用户名称的第一个字母大写。我怎么做?
问问题
43095 次
9 回答
101
如果只有一个单词String,那么使用方法
let capitalizedString = myStr.capitalized // capitalizes every word
否则,对于多字串,您必须提取第一个字符并仅将该字符设为大写。
于 2012-01-26T17:11:29.397 回答
63
(2014-07-24:当前接受的答案不正确)问题非常具体:将第一个字母大写,其余小写。使用大写字符串会产生不同的结果:“大写字符串”而不是“大写字符串”。还有另一个取决于语言环境的变体,它是大写的StringWithLocale,但它对西班牙语不正确,现在它使用与英语相同的规则,所以这就是我为西班牙语做的方式:
NSString *abc = @"this is test";
abc = [NSString stringWithFormat:@"%@%@",[[abc substringToIndex:1] uppercaseString],[abc substringFromIndex:1] ];
NSLog(@"abc = %@",abc);
于 2013-07-15T11:15:59.503 回答
8
如果有人仍然对 2016 年感兴趣,这里有一个Swift 3扩展:
extension String {
func capitalizedFirst() -> String {
let first = self[self.startIndex ..< self.index(startIndex, offsetBy: 1)]
let rest = self[self.index(startIndex, offsetBy: 1) ..< self.endIndex]
return first.uppercased() + rest.lowercased()
}
func capitalizedFirst(with: Locale?) -> String {
let first = self[self.startIndex ..< self.index(startIndex, offsetBy: 1)]
let rest = self[self.index(startIndex, offsetBy: 1) ..< self.endIndex]
return first.uppercased(with: with) + rest.lowercased(with: with)
}
}
然后,您可以像使用通常的大写()或大写()一样使用它:
myString.capitalizedFirst()
或者myString.capitalizedFirst(with: Locale.current)
于 2016-09-27T14:56:45.417 回答
7
这是针对您的NSString+Util
类别...
- (NSString *) capitalizedFirstLetter {
NSString *retVal;
if (self.length < 2) {
retVal = self.capitalizedString;
} else {
retVal = string(@"%@%@",[[self substringToIndex:1] uppercaseString],[self substringFromIndex:1]);
}
return retVal;
}
当然,您可以使用 来做到这一点NSString stringWithFormat
。我使用这种怪异:
#define string(...) \
[NSString stringWithFormat:__VA_ARGS__]
于 2014-07-24T22:10:17.393 回答
7
简单地
- (NSString *)capitalizeFirstLetterOnlyOfString:(NSString *)string{
NSMutableString *result = [string lowercaseString].mutableCopy;
[result replaceCharactersInRange:NSMakeRange(0, 1) withString:[[result substringToIndex:1] capitalizedString]];
return result;
}
于 2016-11-05T07:47:29.957 回答
2
作为已接受答案的扩展
capitalizedString用于制作大写字母。
NSString *capitalizedString = [myStr capitalizedString]; // capitalizes every word
但是,如果您在字符串中有很多单词并且只想将第一个字符作为大写,请使用以下解决方案
NSString *firstCapitalChar = [[string substringToIndex:1] capitalizedString];
NSString *capString = [string stringByReplacingCharactersInRange:NSMakeRange(0,1) withString: capString];
// extract first character and make only that character upper case.
于 2018-05-17T09:23:48.797 回答
1
这是它的快速扩展
extension NSString {
func capitalizeFirstLetter() -> NSString {
return self.length > 1 ?
self.substringToIndex(1).capitalizedString + self.substringFromIndex(1) :
self.capitalizedString
}
}
于 2015-05-21T19:41:18.840 回答
1
这就是它对我的工作方式:
NSString *serverString = jsonObject[@"info"];
NSMutableString *textToDisplay = [NSMutableString stringWithFormat:@"%@", serverString];
[textToDisplay replaceCharactersInRange:NSMakeRange(0, 1) withString:[textToDisplay substringToIndex:1].capitalizedString];
cell.infoLabel.text = textToDisplay;
希望能帮助到你。
于 2016-08-08T15:30:39.307 回答
-1
迅速:
let userName = "hard CODE"
yourLabel.text = userName.localizedUppercaseString
我建议使用大写的本地化版本,因为名称对区域设置敏感。
于 2016-09-19T19:44:57.637 回答