[objective-C基础]NSString使用详解
NSString 是常用的字符串 (string) 对象 (object) ,属于不可变 (immutable) 的对象种类,里面可以放任何的 Unicode 字符

以上为 NSString 的常数 (constant) 形式, @ 后紧跟成对的双引号,成对双引号间即为 NSString 字符串对象的内容。
说明:为了有别于 C 语言的字符串,因此 NSString 字符串对象的常数形式为 @"" ,多了 @ 符号。
我们便是以常数形式建立 NSString 字符串对象
- // 建立三个 NSString 字符串对象
- NSString *s1 = @"\n\n这是 Objective-C 的第一个程序...\n";
- NSString *s2 = @"使用 Foundation.h 中的 NSLog() 来输出...\n";
- NSString *s3 = @"程序执行结束...\n\n";
* 表示指针 (pointer) , Objective-C 中凡是指向对象的变量 (variable) 都必须用指针。
一般来说,建立对象大都先用 alloc 分配对象需要的内存空间,然后才用 init 之类的初始化方法完成,上例也可以改成
- // 建立三个 NSString 字符串对象
- NSString *s1 = [[NSString alloc] initWithString: @"\n\n这是 Objective-C 的第一个程序...\n"];
- NSString *s2 = [[NSString alloc] initWithString: @"使用 Foundation.h 中的 NSLog() 来输出...\n"];
- NSString *s3 = [[NSString alloc] initWithString: @"程序执行结束...\n\n"];
我们用常数直接指派给变量,主要是写的简洁一点。
C 语言的字符串实际上是字符数组 (character array) ,可用字符数组的方式操作; NSString 属于对象,因此有许多方法可以运用,以下列出常见的方法
| 功能 | 名稱 |
|---|---|
| 初始化 |
- initWithCString: - initWithFormat: - initWithFormat:arguments: - initWithString: |
| 取得字串長度 | - length |
| 取得字元 |
- characterAtIndex: - getCharacters:range: |
| 結合字串 |
- stringByAppendingFormat: - stringByAppendingString: |
| 分割字串 |
- substringFromIndex: - substringWithRange: - substringToIndex: |
另外还有搜索、替换、读档、存档、改变大小写等众多功能的方法。
说明:关于 NSString 的详细定义与说明,请参考String Programming Guide与NSString Class Reference
在 demo.m 中,我们就是利用 stringByAppendingString: 将字符串合并
- // 传递 stringByAppendingString 信息给 s1 ,并以 s2 当参数
- // 这是将 s2 接到 s1 的后头,因此 s1 与 s2 会合并为一个字符串
- s1 = [s1 stringByAppendingString: s2];
- // 以下为将 s1 与 s3 合并为一个字符串
- s1 = [s1 stringByAppendingString: s3];
先传递将 s2 接到 s1 后面的信息,然后再传递 s3 接到 s1 后面的信息,咦, NSString 不是不可变的吗?也就是无法改变内容的对象。没错,可是 s1 是指向对象的指针而非对象本身,当以下
- [s1 stringByAppendingString: s2];
完成后,会传递一个新指针,然后我们将这个新指针重新指派给 s1 ,因为这是产生新的 NSString 字符串对象,而非原本的 NSString 字符串对象。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
