ios 如何ios 数组替换指定元素掉NSArray中指定的元素

查看:8417|回复:2
初级工程师
如何从NSArray数组中移除项目呢?
助理工程师
nsarray是不能删除数据的,因为nsarray不可以修改
你要用nsmutablearray
助理工程师
原来NSArray不能修改啊以下代码主要实现了:1、截取"@@"前的字符串; &2、去掉字符串中的"##"; &3、去掉字符串中的空格和换行。
希望相互学习相互指正。
-----ViewController.m内容如下:------
#import "ViewController.h"
#import "HandleString.h"
@interface ViewController ()
& & NSString *_
& & NSString *_tempS
& & UILabel *_
@implementation ViewController
- (void)viewDidLoad {
& & [super viewDidLoad];
#pragma -----1.截取@@前面的内容 2.去掉## 3.去掉空格换行
& & _str = @"静夜思##\n床前 & 明月光\n##疑是 & ##地上霜\n举头@@ & 望明月\n低头 & 思故乡";
& & _tempStr = _
& & [self createSubview];
- (void)createSubview{
& & _label = [[UILabel alloc]init];
& & CGRect temp = self.view.
& & temp.origin.x += 20;
& & temp.origin.y += 80;
& & temp.size.width -= 40;
& & temp.size.height = 150;
& & _label.frame =
& & _label.textAlignment = NSTextAlignmentC
& & _label.lineBreakMode = NSLineBreakByWordW
& & _label.numberOfLines = 0;
& & _label.text = _
& & _label.textColor = [UIColor greenColor];
& & _label.backgroundColor = [[UIColor blueColor]colorWithAlphaComponent:0.3];
& & [self.view addSubview:_label];
& & for (NSInteger i = 0; i&4; i++) {
& & & & UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
& & & & btn.frame = CGRectMake(0, CGRectGetMaxY(_label.frame)+50*(i+1), 150, 40);
& & & & CGRect a = btn.
& & & & a.origin.x = self.view.center.x - a.size.width/2;
& & & & btn.frame =
& & & & btn.backgroundColor = [UIColor cyanColor];
& & & & NSArray *arr = @[@"截取@@前面的内容",@"去掉##",@"去掉空格换行",@"还原"];
& & & & [btn setTitle:arr[i] forState:UIControlStateNormal];
& & & & btn.tag = 10 +//tag分别为10,11,12,13
& & & & [btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
& & & & [self.view addSubview:btn];
- (void)click:(UIButton *)button{
& & NSInteger x = button.
& & switch (x) {
& & & & case 10:
& & & & & & _tempStr = [HandleString handleString:_tempStr interceptFrom:nil to:@"@"];
& & & & & &
& & & & case 11:
& & & & & & _tempStr = [HandleString handleString:_tempStr replace:@"##" with:@" "];
& & & & & &
& & & & case 12:
& & & & & & _tempStr = [HandleString delSpaceAndNewline:_tempStr];
& & & & & &
& & & & case 13:
& & & & & & _tempStr = _
& & & & & &
&& & & & & &
& & & & default:
& & & & & &
& & _label.text = _tempS
- (void)didReceiveMemoryWarning {
& & [super didReceiveMemoryWarning];
& & // Dispose of any resources that can be recreated.
------HandleString.h的内容如下:---------
#import &Foundation/Foundation.h&
@interface HandleString : NSObject
//用str2替换str1
+ (NSString *)handleString:(NSString *)string replace:(NSString *)str1 with:(NSString *)str2;
//从str1(包括),截取字符串到str2(不包括)
+ (NSString *)handleString:(NSString *)string interceptFrom:(NSString *)str1 to:(NSString *)str2;
//去掉字符串中的空格、换行
+ (NSString *)delSpaceAndNewline:(NSString *)
------HandleString.m的内容如下:---------
#import "HandleString.h"
@implementation HandleString
+ (NSString *)delSpaceAndNewline:(NSString *){
& & NSMutableString *mutStr = [NSMutableString stringWithString:string];
& & NSRange range = {0,mutStr.length};
& & [mutStr replaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:range];
& & NSRange range2 = {0,mutStr.length};
& & [mutStr replaceOccurrencesOfString:@"\n" withString:@"" options:NSLiteralSearch range:range2];
& & return mutS
//& & string = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; //去除掉首尾的空白字符和换行字符
//& & string = [string stringByReplacingOccurrencesOfString:@" " withString:@""];
//& & string = [string stringByReplacingOccurrencesOfString:@"\n" withString:@""];
#pragma -----如果字符串中有str1,用str2替换掉
+ (NSString *)handleString:(NSString *)string replace:(NSString *)str1 with:(NSString *)str2;{
& & if (str2 == nil) {
& & & & str2 = @"";
//& & //方式一
//& & NSMutableString *tempStr = [NSMutableString stringWithString:string];
//& & NSRange range = {0,tempStr.length};
//& & [tempStr replaceOccurrencesOfString:str1 withString:str2 options:NSLiteralSearch range:range];
//& & return tempS
//& & //方式二
//& & string = [string stringByReplacingOccurrencesOfString:str1 withString:str2];
& & //方式三
& & NSArray *array = [string componentsSeparatedByString:str1];
& & NSInteger count = [array count] - 1;
& & NSMutableString *tempStr = [NSMutableString stringWithString:string];
& & for (NSInteger i = 0; i& i++) {
& & & & NSRange range = [tempStr rangeOfString:str1];
& & & & NSInteger location = range.
& & & & NSInteger length = range.
& & & & if (location != NSNotFound) {
& & & & & & [tempStr replaceCharactersInRange:NSMakeRange(location, length) withString:str2];
& & return tempS
#pragma ------从字符串str1,截取到str2
+ (NSString *)handleString:(NSString *)string interceptFrom:(NSString *)str1 to:(NSString *)str2;{
& & if (str1 == nil) {
& & & & str1 = @"";
& & if (str2 == nil) {
& & & & str2 = @"";
& & NSRange range1 = [string rangeOfString:str1];
& & NSInteger location1 = range1.
& & if (location1 != NSNotFound) {
& & & & string = [string substringFromIndex:location1];
& & NSRange range2 = [string rangeOfString:str2];
& & NSInteger location2 = range2.
& & if (location2 != NSNotFound) {
& & & & string = [string substringToIndex:location2];
阅读(...) 评论()5741人阅读
ios-便捷积累(6)
系统提供的有方法,大家看看应该会用的
- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2;
&& [_mutArr exchangeObjectAtIndex:0 withObjectAtIndex:1];
mutArr的第一个元素和第二个元素互换位置
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
iOS开发:iOSDevTip 扫描二维码关注:
猿圈:CodePush 扫描二维码关注:
访问:121233次
积分:2216
积分:2216
排名:第14615名
原创:97篇
转载:31篇
评论:28条
(1)(1)(1)(2)(8)(21)(5)(1)(6)(3)(3)(3)(8)(1)(1)(12)(1)(6)(2)(12)(5)(25)

参考资料

 

随机推荐