字符串
使用NSString表示Objective-C编程语言中的字符串,其子类NSMutableString提供了几种创建字符串对象的方法。创建字符串对象的最简单方法是使用@"..."构造-
NSString *greeting = @"Hello";
下面显示了一个创建和打印字符串的简单示例。
#import <Foundation/Foundation.h>
int main () {
NSString *greeting = @"Hello";
NSLog(@"Greeting message: %@\n", greeting );
return 0;
}
当上面的代码被编译和执行时,产生的结果如下:
2020-08-08 01:21:39.922 test[23926] Greeting message: Hello
Objective-C支持多种用于处理字符串的方法-
控件 |
说明 |
- (NSString *)capitalizedString; |
返回参数的大写形式。 |
- (unichar)characterAtIndex:(NSUInteger)index; |
返回给定数组位置处的字符。 |
- (double)doubleValue; |
以双double形式返回接收者文本的浮点值。 |
- (float)floatValue; |
以float返回接收者文本的浮点值。 |
- (BOOL)hasPrefix:(NSString *)aString; |
返回一个布尔值,该值指示给定的字符串是否与接收方的开头字符匹配。 |
- (BOOL)hasSuffix:(NSString *)aString; |
返回一个布尔值,该值指示给定的字符串是否与接收方的结尾字符匹配。 |
- (id)initWithFormat:(NSString *)format ...; |
返回一个NSString对象,该对象通过使用给定的格式字符串作为模板进行初始化,其余参数值将替换为该对象。 |
- (NSInteger)integerValue; |
返回接收者文本的NSInteger值。 |
- (BOOL)isEqualToString:(NSString *)aString; |
返回一个布尔值,该值使用基于Unicode的文字比较来指示给定的字符串是否等于接收者。 |
- (NSUInteger)length; |
返回接收器中Unicode字符的数量。 |
- (NSString *)lowercaseString; |
返回接收器的小写形式。 |
- (NSRange)rangeOfString:(NSString *)aString; |
查找并返回给定字符串在接收器中首次出现的范围。 |
- (NSString *)stringByAppendingFormat:(NSString *)format ...; |
返回一个字符串,该字符串是通过将由给定格式字符串和以下参数构成的字符串追加到接收方而制成的。 |
- (NSString *)stringByTrimmingCharactersInSet:(NSCharacterSet *)set; |
返回一个新的字符串,该字符串是通过从接收者的两端删除给定字符集中包含的字符而得到的。 |
- (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;
}
2020-08-08 11:24:50.846 test[11796:3036] Uppercase String : WORLD
2020-08-08 11:24:50.851 test[11796:3036] Concatenated string: HelloWorld
2020-08-08 11:24:50.851 test[11796:3036] Length of Str3 : 10
2020-08-08 11:24:50.851 test[11796:3036] Using initWithFormat: Hello World