Objective-c-strings

提供:Dev Guides
移動先:案内検索

Objective-Cの文字列

Objective-Cプログラミング言語の文字列はNSStringを使用して表され、そのサブクラスNSMutableStringは文字列オブジェクトを作成するためのいくつかの方法を提供します。 文字列オブジェクトを作成する最も簡単な方法は、Objective-C @ "…​"コンストラクトを使用することです-

NSString *greeting = @"Hello";

文字列の作成と印刷の簡単な例を以下に示します。

#import <Foundation/Foundation.h>

int main () {
   NSString *greeting = @"Hello";
   NSLog(@"Greeting message: %@\n", greeting );

   return 0;
}

上記のコードをコンパイルして実行すると、次のような結果が生成されます-

2013-09-11 01:21:39.922 demo[23926] Greeting message: Hello

Objective-Cは、文字列を操作するための幅広い方法をサポートしています-

Sr.No. Method & Purpose
1
  • (NSString *)capitalizedString; *

レシーバーの大文字表記を返します。

2
  • (unichar)characterAtIndex:(NSUInteger)index;*

指定された配列位置の文字を返します。

3
  • (double)doubleValue; *

受信者のテキストの浮動小数点値をdoubleとして返します。

4
  • (float)floatValue;*

受信者のテキストの浮動小数点値をfloatとして返します。

5
  • (BOOL)hasPrefix:(NSString *)aString; *

特定の文字列がレシーバーの開始文字に一致するかどうかを示すブール値を返します。

6
  • (BOOL)hasSuffix:(NSString* )aString; *

指定された文字列が受信者の終了文字と一致するかどうかを示すブール値を返します。

7
  • (id)initWithFormat:(NSString* )format …​; *

指定されたフォーマット文字列をテンプレートとして使用して初期化されたNSStringオブジェクトを返します。テンプレートには、残りの引数値が代入されます。

8
  • (NSInteger)integerValue;*

受信者のテキストのNSInteger値を返します。

9
  • (BOOL)isEqualToString:(NSString *)aString; *

Unicodeベースのリテラル比較を使用して、指定された文字列がレシーバーと等しいかどうかを示すブール値を返します。

10
  • (NSUInteger)length;*

レシーバーのUnicode文字の数を返します。

11
  • (NSString *)lowercaseString; *

レシーバーの小文字表現を返します。

12
  • (NSRange)rangeOfString:(NSString* )aString; *

レシーバー内で特定の文字列が最初に現れる範囲を検索して返します。

13
  • (NSString* )stringByAppendingFormat:(NSString *)format …​; *

指定されたフォーマット文字列と次の引数から構築された文字列を受信機に追加することにより作成された文字列を返します。

14
  • (NSString* )stringByTrimmingCharactersInSet:(NSCharacterSet *)set; *

指定された文字セットに含まれるレシーバー文字の両端から削除して作成された新しい文字列を返します。

15
  • (NSString* )substringFromIndex:(NSUInteger)anIndex; *

指定されたインデックスの文字から最後までのレシーバの文字を含む新しい文字列を返します。

次の例では、上記の機能のいくつかを利用しています-

#import <Foundation/Foundation.h>

int main () {
   NSString* str1 = @"Hello";
   NSString *str2 = @"World";
   NSString *str3;
   int  len ;

   NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

  /*uppercase string*/
   str3 = [str2 uppercaseString];
   NSLog(@"Uppercase String :  %@\n", str3 );

  /*concatenates str1 and str2*/
   str3 = [str1 stringByAppendingFormat:@"World"];
   NSLog(@"Concatenated string:   %@\n", str3 );

  /*total length of str3 after concatenation*/
   len = [str3 length];
   NSLog(@"Length of Str3 :  %d\n", len );

  /*InitWithFormat*/
   str3 = [[NSString alloc] initWithFormat:@"%@ %@",str1,str2];
   NSLog(@"Using initWithFormat:   %@\n", str3 );
   [pool drain];

   return 0;
}

上記のコードをコンパイルして実行すると、次のような結果が生成されます-

2013-09-11 01:15:45.069 demo[30378] Uppercase String :  WORLD
2013-09-11 01:15:45.070 demo[30378] Concatenated string:   HelloWorld
2013-09-11 01:15:45.070 demo[30378] Length of Str3 :  10
2013-09-11 01:15:45.070 demo[30378] Using initWithFormat:   Hello World

Objective-C NSString関連のメソッドの完全なリストは、https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSStringl [NSString Class Reference。]にあります。