位置:首頁 > 高級語言 > Objective-C教學 > Objective-C NSString/字符串

Objective-C NSString/字符串

在Objective-C編程語言的字符串表示使用NSString 和它的子類NSMutableString的創建字符串對象提供了幾種方法。創建一個字符串對象最簡單的方法是使用 Objective-C 的@"..."構造:

NSString *greeting = @"Hello";

一個簡單的例子,用於創建和打印字符串如下所示。

#import <Foundation/Foundation.h>

int main ()
{
   NSString *greeting = @"Hello";
   NSLog(@"Greeting message: %@
", greeting );
   return 0;
}

上麵的代碼編譯和執行時,它產生的結果如下:

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

Objective-C的支持範圍廣泛的操作字符串的方法:

S.N. 方法 & 目的
1 - (NSString *)capitalizedString;
Returns a capitalized representation of the receiver.
2 - (unichar)characterAtIndex:(NSUInteger)index;
Returns the character at a given array position.
3 - (double)doubleValue;
Returns the floating-yiibai value of the receiver’s text as a double.
4 - (float)floatValue;
Returns the floating-yiibai value of the receiver’s text as a float.
5 - (BOOL)hasPrefix:(NSString *)aString;
Returns a Boolean value that indicates whether a given string matches the beginning characters of the receiver.
6 - (BOOL)hasSuffix:(NSString *)aString;
Returns a Boolean value that indicates whether a given string matches the ending characters of the receiver.
7 - (id)initWithFormat:(NSString *)format ...;
Returns an NSString object initialized by using a given format string as a template into which the remaining argument values are substituted.
8 - (NSInteger)integerValue;
Returns the NSInteger value of the receiver’s text.
9 - (BOOL)isEqualToString:(NSString *)aString;
Returns a Boolean value that indicates whether a given string is equal to the receiver using a literal Unicode-based comparison.
10 - (NSUInteger)length;
Returns the number of Unicode characters in the receiver.
11 - (NSString *)lowercaseString;
Returns lowercased representation of the receiver.
12 - (NSRange)rangeOfString:(NSString *)aString;
Finds and returns the range of the first occurrence of a given string within the receiver.
13 - (NSString *)stringByAppendingFormat:(NSString *)format ...;
Returns a string made by appending to the receiver a string constructed from a given format string and the following arguments.
14 - (NSString *)stringByTrimmingCharactersInSet:(NSCharacterSet *)set;
Returns a new string made by removing from both ends of the receiver characters contained in a given character set.
15 - (NSString *)substringFromIndex:(NSUInteger)anIndex ;
Returns a new string containing the characters of the receiver from the one at a given index to the end.

下麵的示例,如何使用幾個上述功能:

#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 :  %@
", str3 );

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

   /* total length of str3 after concatenation */
   len = [str3 length];
   NSLog(@"Length of Str3 :  %d
", len );
    
   /* InitWithFormat */
    str3 = [[NSString alloc] initWithFormat:@"%@ %@",str1,str2];	
    NSLog(@"Using initWithFormat:   %@
", 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相關方法 NSString 類參數.