51

iPhoneアプリを開発しています。ラベルで、ユーザーの名前の最初の文字を大文字で表示したいと考えています。それ、どうやったら出来るの?

4

9 に答える 9

101

String という単語が 1 つしかない場合は、メソッドを使用します。

-大文字

let capitalizedString = myStr.capitalized // capitalizes every word

それ以外の場合、複数の単語の文字列の場合、最初の文字を抽出してその文字のみを大文字にする必要があります。

于 2012-01-26T17:11:29.397 に答える
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

迅速:

let userName = "hard CODE"
yourLabel.text = userName.localizedUppercaseString

名前はロケールに依存するため、このローカライズ版の大文字を使用することをお勧めします。

于 2016-09-19T19:44:57.637 に答える