当前位置: 首页 > 教程 > Objective-C >

Objective-C字符串

精华
小牛编辑
110浏览
2023-03-14

Objective-C编程语言中的字符串使用NSString表示,其子类NSMutableString提供了几种创建字符串对象的方法。 创建字符串对象的最简单方法是使用Objective-C的标识符:@""来构造 -

NSString *greeting = @"Hello";
NSString *siteName = @"Yiibai";

下面代码中显示了创建和打印字符串的简单示例 -

#import <Foundation/Foundation.h>

int main () {
   NSString *greeting = @"Hello, All Readers";
   NSLog(@"Greeting message: %@\n", greeting );

   return 0;
}

编译和执行上面的代码时,它产生的结果如下 -

2018-11-15 06:41:29.480 main[76503] Greeting message: Hello, All Readers

Objective-C支持多种操作字符串的方法,如下列表 -

编号 方法 描述
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];

   /* 大写字符串 */
   str3 = [str2 uppercaseString];
   NSLog(@"Uppercase String :  %@\n", str3 );

   /* 连接str1和str2 */
   str3 = [str1 stringByAppendingFormat:@"World"];
   NSLog(@"Concatenated string:   %@\n", str3 );

   /* 连接后str3的总长度 */
   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;
}

执行上面示例代码,得到以下结果:

2018-11-15 07:00:20.805 main[72848] Uppercase String :  WORLD
2018-11-15 07:00:20.806 main[72848] Concatenated string:   HelloWorld
2018-11-15 07:00:20.806 main[72848] Length of Str3 :  10
2018-11-15 07:00:20.806 main[72848] Using initWithFormat:   Hello World

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