NSRange类详解 以及stringByReplacingCharactersInRange: withString: 實現字符串删除,替换
来源:互联网 发布:淘宝店铺装修报价单 编辑:程序博客网 时间:2024/06/09 16:43
NSRange的定义
typedef struct _NSRange
{
NSUInteger location;
NSUInteger length;
} NSRange;
NSRange是一个结构体,其中location是一个以0为开始的index,length是表示对象的长度。他们都是NSUInteger类型。而NSUInteger类型的定义如下:
#if __LP64__ || TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64
typedefunsigned long NSUInteger;
#else
typedef unsigned int NSUInteger;
#endif
例子:
下面这个例子,将输出IPA
NSString *homebrew = @"Imperial India Pale Ale (IPA)";
// Starting at position 25, get3 characters
NSRange range=NSMakeRange (25, 3);
// This would also work:
// NSRange range = {25, 3};
NSLog (@"Beer shortname: %@", [homebrew substringWithRange:range]);
搜索字符串:
NSString *homebrew = @"Imperial India Pale Ale (IPA)";
NSRange range = [homebrew rangeOfString:@"IPA"];
// Did we find the string "IPA" ?
if (range.length > 0)
NSLog(@"Range is: %@", NSStringFromRange(range));
上面的程序将输出Range is: {25, 3}。NSStringFromRange()方法,将一个NSRange返回一个NSString。而另外一个函数NSRangeFromString()则是将NSString转换为NSRange
下面这个例子将从后向前反向搜索字符串:
NSString *homebrew = @"Imperial India Pale Ale (IPA)";
// Search for the "ia" starting at theend of string
NSRange range = [homebrew rangeOfString:@"ia" options:NSBackwardsSearch];
// What did we find
if (range.length > 0)
NSLog(@"Range is: %@", NSStringFromRange(range));
上面的程序将输出:Range is: {12, 2} (“ia”出现在单词“India”中)
ac
如果你要获取一个字符串或者一个数组中的一个子集,那么使用NSRange会很方便的定义这个子集。
NSRange定义
Declaration: typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;
创建NSRange的方法定义
Declaration: NSRange NSMakeRange (
NSUInteger loc,
NSUInteger len
);
例如获取一个数组的一个子集:
NSRange range = NSMakeRange(0, 5);
NSArray *subArray = [self.states subarrayWithRange:range];
这样就获得了这个数组中0开始的5个元素的子集。
- NSString *str = @"1234567890";
- [str stringByReplacingCharactersInRange:NSMakeRange(str.length-1, 1) withString:@""];
- NSLog(@"str = %@", str); // str = 123456789
- [str stringByReplacingCharactersInRange:NSMakeRange(str.length-1, 1) withString:@"1"];
解释:NSMakeRange(str.length-1, 1),将字符串str定位到第九个字符即‘9’,取长度为1的字符串,即9后第一个字符串 ‘0’,用字符串@“”替代‘0’,即所得的结果为“123456789”
- NSString *str = @"1234567890";
- [str stringByReplacingCharactersInRange:NSMakeRange(str.length-2, 2) withString:@"aa"];
- NSLog(@"str = %@", str); // str = 12345678aa
- NSRange类详解 以及stringByReplacingCharactersInRange: withString: 實現字符串删除,替换
- stringByReplacingCharactersInRange: withString: 實現字符串删除,替换
- stringByReplacingCharactersInRange: withString: 實現字符串删除,替换
- stringByReplacingCharactersInRange: withString: 实现字符串删除,替换
- iOS开发经验技巧之stringByReplacingCharactersInRange: withString: 實現字符串删除,替换
- NSRange类详解
- NSRange类详解
- NSRange类详解
- NSRange类详解
- NSRange类详解
- NSRange类详解
- Objective-C 【NSRange&字符串的截取和替换】
- NSRange详解
- 字符串的删除替换
- linux shell 字符串操作(长度 查找 删除 替换)详解
- 关于stringByReplacingCharactersInRange过滤字符串的问题
- 字符串NSRange的使用
- NSRange 和 NSString 详解
- leetcode 79:Word Search(redo)
- oracle 11g概要文件
- 网页脚本输入这么简单
- iOS多线程编程-GCD
- Object-C,遍历目录
- NSRange类详解 以及stringByReplacingCharactersInRange: withString: 實現字符串删除,替换
- OpenCV大拿
- WordPress主题制作(9)-have_posts()和the_post()用法解析
- JDBC 基础
- WordPress 添加投稿功能
- Linux操作系统安装ActiveMQ
- Golang同步:原子操作使用
- leetcode 80:Remove Duplicates from Sorted Array II
- Maven使用大纲