字符串(Strings)
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. | 方法和目的 |
---|---|
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
您可以在NSString类参考中找到Objective-C NSString相关方法的完整列表。