| NSString主要方法 |
|
(1)
Unicode字符串的操作
|
注: unichar是Unicode表现的一个字符的类型,不同于char
便利构造函数: 先自动呼出alloc的
|
- (id) initWithUTF8String: (const char*) bytes;
便利构造函数:
+ (id) stringWithUTF8String: (const char*) bytes;
|
用和C一样以'\0'结尾的字符串生成 |
| - (__strong const char *) UTF8String; |
返回编码为UTF-8的C字符串指针 |
| - (NSUInteger) length; |
返回字符串长度
不同于C,不能用来计算需要的大小
(# TODO: check [?])
|
| - (unichar) characterAtIndex: (NSUInteger) index; |
获取第index个的Unicode字符 |
|
- (id) initWithCharacters: (const unichar *) characters length: (NSUInteger) length
便利构造函数:
+ (id) stringWithCharacters: length:
|
生成length长的以characters重复的字符串 |
| - (void) getCharacters: (unichar *) buffer range: (NSRange) aRange |
把aRange指定的范围的字符串复制到buffer
注: 不会自动加'\0'
NSRange 开始位置和长度的结构体
buffer长度必须够
|
| |
|
|
|
(2)
指定字符编码的变换
|
| NSStringEncoding类型 |
指定字符码
如
|
NSASCIIStringEncoding
|
7位的ASCII字码 |
|
NSUTF8StringEncoding
|
Unicode字符的8位字码
UTF-8
|
|
NSMaxOsRomanStringEncoding
|
日语的8位EUC字码 |
| NSShiftJISStringEncoding |
日语的8位shiftJIS字码 |
| |
|
|
|
- (id) initWithCString: (const char *) nullTerminatedCString
encoding: (NSStringEncoding) encoding
便利构造函数:
+ (id) stringWithCString: encoding:
注: encoding表示data的生成方法,生成的对象的生成方法是Unicode
|
通过指定编码的以'\0'结尾的字符串生成
|
| - (__strong const char *) cStringUsingEncoding: (NSStringEncoding) encoding |
指定字码来转换,无法转换会抛出例外
getCString:MaxLength:encoding: 可以直接放到准备好的内存里
|
|
- (id) initWithData: (NSData *) data encoding: (NSStringEncoding) encoding
注: encoding表示data的生成方法,生成的对象的生成方法是Unicode
|
通过以encoding字码写的data来生成
类似的有
initWithBytes:length:encoding:
|
|
- (NSData *) dataUsingEncoding: (NSStringEncoding) encoding
只获取长度:
lengthOfBytesUsingEncoding:
|
把受体的字符串通过encoding编码后返回NSData,
无法转换返回nil
|
| - (BOOL) canBeConvertedToEncoding: (NSStringEncoding) encoding |
能不能被指定的字码转换
可以用
availableStringEncodings来查看当前环境可用的encoding
|
|
URL字符化
- (NSString *) stringByAddingPercentEscapesUsingEncoding: (NSStringEncoding) encoding
String化
stringByReplacingPercentEscapesUsingEncoding:
|
把受体根据encoding来%化,用在URL的字符串表达上
都在Foundation/NSURL.h
|
| |
|
|
|
(3)
根据格式生成字符串
|
| 格式规则 |
格式规则和printf()里的一样
不同:
可用%@, NSString, 对象的description(NSString)
格式字符串也是NSString
注意: 用格式生成NSString时,格式修饰符的对象不会自动转型
|
|
- (id) initWithFormat: (NSString *) format, ...
便利构造函数:
stringWithFormat:
|
根据格式生成字符串
可变长度的参数, 最后加...
# TODO: Supply [10.2 可变长度的参数]
|
| |
|
|
|
(4)
对比
|
| NSComparisionResult |
enum _NSComparisionResult {
NSOrderedAscending = -, NSOrderedSame, NSOrderedDescending
};
typedef NSInteger NSComparisionResult;
相同返回NSOrderedSame, 小返回NSOrderedDescending, 大返回NSOrderedAscending
|
| - (NSComparisionResult) compare: (NSString *) aString |
字符串的比较, aString不能为nil
只是比较是否相同的话可用
- (BOOL) isEqualToString: (NSString *) aString
|
| - (NSComparisionResult) caseInsensitiveCompare: (NSString *) aString |
无视大小写的比较
其他方法来比较的话用:compare:option:
|
| - (NSComparisionResult) localizedStandardCompare: (NSString *) aString |
Mac的Finder里文件名排序相同的方法来比较 |
| - (BOOL) isEqualToString: (NSString *) aString |
与指定NSString是否相同 |
|
- (BOOL) hasPrefix: (NSString *) aString
|
开头是否和aString相同(是否有指定前缀) |
| - (BOOL) hasSuffix: (NSString *) aString |
结尾是否与aString相同 |
| commonPrefixWithString:options: |
从开头取出相同的字符串 |
| |
|
| |
|
|
|
(5)
连接
|
| - (NSString *) stringByAppendingString: (NSString *) astring |
把aString连接在最后 |
| - (NSString *) stringByAppendingFormat: (NSString *) format, ... |
把根据格式生成的字符串连接在最后 |
| |
|
| |
|
|
|
(6)
子字符串
|
- Objective - c Foundation 框架详解2
Objective - c Foundation 框架详解2 Collection Agency Cocoa provides a number of collection classes such ...
- 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词
一. 字符串 API 1. NSString 用法简介 (1) NSString API 介绍 NSString 功能 : -- 创建字符串 : 使用 init 开头的实例方法, 也可以使用 Stri ...
- Foundation框架—时间处理对象NSDate
NSDate类用于保存时间值,同时提供了一些方法来处理一些基于秒级别时差(Time Interval)运算和日期之间的早晚比较等. 1. NSDate的构造方法和构造获取实例的属性 用于创建NSDat ...
- (译)Getting Started——1.3.3 Working with Foundation(使用Foundation框架)
在你使用Objective-C语言开发应用时,你会发现在开发中,你会用到很多框架.尤其是Foundation框架,该框架为应用提供了最基础的服务.Foundation框架包括了代表着基本数据类型的va ...
- 从今天開始学习iOS开发(iOS 7版)--实现一款App之Foundation框架的使用
iOSFoundation框架 当你着手为你的应用编写代码的时候,你会发现有很多可供使用的Objective-C的框架类,当中尤其重要的就是基础框架类.它为平台全部的应用提供基础服务.基础框架类中包括 ...
- (转载)OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象
在之前的一篇文章中我们说到了Foundation框架中的NSObject对象,那么今天在在来继续看一下Foundation框架中的常用对象:NSString和NSMutableString. 在OC中 ...
- (转载)OC学习篇之---Foundation框架中的NSObject对象
前一篇文章讲到了OC中的代理模式,而且前几篇文章就介绍了OC中的类相关知识,从这篇文章开始我们开始介绍Foundation框架. OC中的Foundation框架是系统提供了,他就相当于是系统的一套a ...
- iOS Foundation框架 -3.利用NSNumber和NSValue将非OC对象类型数据存放到集合
1.Foundation框架中提供了很多的集合类如:NSArray,NSMutableArray,NSSet,NSMutableSet,NSDictionary,NSMutableDictionary ...
- Foundation框架中的NSNumber对象详解
到目前为止,我们所讨论过的所有数字数据类型,如int型.float型和long型都是Objective-C语言中的基本数据类型,也就是说,它们都不是对象.例如,不能向它们发送消息.然而,有时需要作为对 ...
随机推荐
- Markdown中插入图片技巧收集
在操作Markdown时图片应该是最头痛的一件事! 比如要发送一个md文件给对方,如果附带了图片时,那么就要一大堆文件包括图片发给对方等等,如果使用在线图片,那么这个服务器又是一大痛点,因为你不确定这 ...
- new String()理解
public static void main(String[] args){ String a=new String("ddy"); String b=new String(&q ...
- Java异常错误重试方案研究(转)(spring-retry/guava-retryer)
业务场景 应用中需要实现一个功能: 需要将数据上传到远程存储服务,同时在返回处理成功情况下做其他操作.这个功能不复杂,分为两个步骤:第一步调用远程的Rest服务逻辑包装给处理方法返回处理结果:第二步拿 ...
- hp 88a加粉
http://v.youku.com/v_show/id_XNzEzODEwNzMy.html
- Node.js+Web TWAIN,实现Web文档扫描和图像上传
目录(?)[+] 通过Dynamic Web TWAIN SDK和Node.js的组合,只需要几行代码就可以实现在浏览器中控制扫描仪,获取图像后上传到远程服务器. 原文:Document Imag ...
- mysql手记
myisam innoDB是mysql经常使用的存储引擎 MyISAM不支持事务.也不支持外键.但其訪问速度快.对事务完整性没有要求. InnoDB存储引擎提供了具有提交.回滚和崩溃恢复能力的事务安全 ...
- Android - 隐藏EditText弹出的软键盘输入(SoftInput)
隐藏EditText弹出的软键盘输入(SoftInput) 本文地址: http://blog.csdn.net/caroline_wendy 保持界面的整洁, 能够选择在进入界面时, 隐藏EditT ...
- Robot Framework操作
Robot Framework 介绍 RobotFramework是一款基于python的开源自动化测试框架,遵守Apache License 2.0协议,在此协议下所有人都可以免费开发和使用.因为R ...
- oracle随机数
1.从表中随机取记录 select * from (select * from staff order by dbms_random.random) where rownum < 4 表示从ST ...
- 微信通过openID发送消息/后台post、get提交并接收数据 C# .NET 配置404,500等错误信息 连接字符串
微信通过openID发送消息/后台post.get提交并接收数据 控制器:下面是post发送消息(微信不支持从前台发送数据,之前试过,报错,需要跨域,跨域的问题解决后还不行,最后发现之后后端提交 ...
| |