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 支持多种操作字符串的方法 -

先生。 方法与目的
1

- (NSString *)大写字符串;

返回接收者的大写表示。

2

- (unichar)characterAtIndex:(NSUInteger)索引;

返回给定数组位置处的字符。

3

- (双)双值;

以双精度形式返回接收者文本的浮点值。

4

- (浮动)浮动值;

以浮点形式返回接收者文本的浮点值。

5

- (BOOL)hasPrefix:(NSString *)aString;

返回一个布尔值,指示给定字符串是否与接收者的开头字符匹配。

6

- (BOOL)hasSuffix:(NSString *)aString;

返回一个布尔值,指示给定字符串是否与接收者的结束字符匹配。

7

- (id)initWithFormat:(NSString *)format ...;

返回一个 NSString 对象,该对象使用给定的格式字符串作为模板进行初始化,其余参数值将替换到该模板中。

8

- (NSInteger)整数值;

返回接收者文本的 NSInteger 值。

9

- (BOOL)isEqualToString:(NSString *)aString;

返回一个布尔值,该值指示给定字符串是否等于使用基于 Unicode 的文字比较的接收者。

10

- (NSUInteger)长度;

返回接收器中的 Unicode 字符数。

11

- (NSString *)小写字符串;

返回接收者的小写表示形式。

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

您可以在 NSString 类参考中找到 Objective-C NSString 相关方法的完整列表