Objective-C字串


Objective-C程式設計語言中的字串使用NSString表示,其子類NSMutableString提供了幾種建立字串物件的方法。 建立字串物件的最簡單方法是使用Objective-C的識別符號:@""來構造 -

NSString *greeting = @"Hello";
NSString *siteName = @"Yiibai";

下面程式碼中顯示了建立和列印字串的簡單範例 -

#import <Foundation/Foundation.h>

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

   return 0;
}

編譯和執行上面的程式碼時,它產生的結果如下 -

2018-11-15 06:41:29.480 main[76503] Greeting message: Hello, All Readers

Objective-C支援多種操作字串的方法,如下列表 -

編號 方法 描述
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];

   /* 大寫字串 */
   str3 = [str2 uppercaseString];
   NSLog(@"Uppercase String :  %@\n", str3 );

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

   /* 連線後str3的總長度 */
   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;
}

執行上面範例程式碼,得到以下結果:

2018-11-15 07:00:20.805 main[72848] Uppercase String :  WORLD
2018-11-15 07:00:20.806 main[72848] Concatenated string:   HelloWorld
2018-11-15 07:00:20.806 main[72848] Length of Str3 :  10
2018-11-15 07:00:20.806 main[72848] Using initWithFormat:   Hello World

可以在NSString類參考中找到更多與Objective-C NSString相關方法的完整列表。