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 *)capitalizedString; 返回接收者的大写表示形式。 |
| 2 | - (unichar)characterAtIndex:(NSUInteger)index; 返回给定数组位置的字符。 |
| 3 | - (double)doubleValue; 以双精度返回接收者文本的浮点值。 |
| 4 | - (float)floatValue; 以浮点数形式返回接收者文本的浮点值。 |
| 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
你可以在 https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html 中找到完整的 Objective-C NSString 相关方法列表。

