zoukankan      html  css  js  c++  java
  • iOS字符串处理_替换(去掉空格换行)、截取

    以下代码主要实现了:1、截取"@@"前的字符串;  2、去掉字符串中的"##";  3、去掉字符串中的空格和换行。

    希望相互学习相互指正。

    -----ViewController.m内容如下:------

    #import "ViewController.h"

    #import "HandleString.h"

    @interface ViewController ()

    {

        NSString *_str;

        NSString *_tempStr;

        UILabel *_label;

    }

    @end

    @implementation ViewController

    - (void)viewDidLoad {

        [super viewDidLoad];

        

    #pragma -----1.截取@@前面的内容 2.去掉## 3.去掉空格换行

        _str = @"静夜思## 床前   明月光 ##疑是   ##地上霜 举头@@   望明月 低头   思故乡";

        _tempStr = _str;

        

        [self createSubview];

    }

    - (void)createSubview{

        _label = [[UILabel alloc]init];

        

        CGRect temp = self.view.frame;

        temp.origin.x += 20;

        temp.origin.y += 80;

        temp.size.width -= 40;

        temp.size.height = 150;

        _label.frame = temp;

        

        _label.textAlignment = NSTextAlignmentCenter;

        _label.lineBreakMode = NSLineBreakByWordWrapping;

        _label.numberOfLines = 0;

        _label.text = _str;

        _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.frame;

            a.origin.x = self.view.center.x - a.size.width/2;

            btn.frame = a;

            

            btn.backgroundColor = [UIColor cyanColor];

            

            NSArray *arr = @[@"截取@@前面的内容",@"去掉##",@"去掉空格换行",@"还原"];

            [btn setTitle:arr[i] forState:UIControlStateNormal];

            

            btn.tag = 10 + i;//tag分别为10,11,12,13

            

            [btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

            

            [self.view addSubview:btn];

        }

    }

    - (void)click:(UIButton *)button{

        NSInteger x = button.tag;

        

        switch (x) {

            case 10:

                _tempStr = [HandleString handleString:_tempStr interceptFrom:nil to:@"@"];

                break;

            case 11:

                _tempStr = [HandleString handleString:_tempStr replace:@"##" with:@" "];

                break;

            case 12:

                _tempStr = [HandleString delSpaceAndNewline:_tempStr];

                break;

            case 13:

                _tempStr = _str;

                break;

                

            default:

                break;

        }

        _label.text = _tempStr;

    }

    - (void)didReceiveMemoryWarning {

        [super didReceiveMemoryWarning];

        // Dispose of any resources that can be recreated.

    }

    @end

    ------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 *)string;

    @end

    ------HandleString.m的内容如下:---------

    #import "HandleString.h"

    @implementation HandleString

    + (NSString *)delSpaceAndNewline:(NSString *)string;{

        NSMutableString *mutStr = [NSMutableString stringWithString:string];

        NSRange range = {0,mutStr.length};

        [mutStr replaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:range];

        NSRange range2 = {0,mutStr.length};

        [mutStr replaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:range2];

        return mutStr;

        

        

    //    string = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; //去除掉首尾的空白字符和换行字符

    //    string = [string stringByReplacingOccurrencesOfString:@" " withString:@""];

    //    string = [string stringByReplacingOccurrencesOfString:@" " withString:@""];

    //    return string;

    }

    #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 tempStr;

        

    //    //方式二

    //    string = [string stringByReplacingOccurrencesOfString:str1 withString:str2];

    //    return string;

        

        

        //方式三

        NSArray *array = [string componentsSeparatedByString:str1];

        NSInteger count = [array count] - 1;

        

        NSMutableString *tempStr = [NSMutableString stringWithString:string];

        for (NSInteger i = 0; i<count; i++) {

            NSRange range = [tempStr rangeOfString:str1];

            NSInteger location = range.location;

            NSInteger length = range.length;

            if (location != NSNotFound) {

                [tempStr replaceCharactersInRange:NSMakeRange(location, length) withString:str2];

            }

        }

        return tempStr;

        

    }

    #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.location;

        if (location1 != NSNotFound) {

            string = [string substringFromIndex:location1];

        }

        

        NSRange range2 = [string rangeOfString:str2];

        NSInteger location2 = range2.location;

        if (location2 != NSNotFound) {

            string = [string substringToIndex:location2];

        }

        

        return string;

    }

    @end

    END

  • 相关阅读:
    Javascript、C#、php、asp、python 等语言的链式操作的实现
    根据C# 事件思想来实现 php 事件
    initerrlog: 无法打开错误日志文件 'D:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLLog 解决办法
    64位直接加载个img 标签的src
    各种脚本语言变量作用域总结
    数据库设计14个技巧【转】
    基于Jquery 简单实用的弹出提示框
    C# dll 事件执行 js 回调函数
    php 配置xdebug
    sqlserver 构架与性能优化
  • 原文地址:https://www.cnblogs.com/aitdsr/p/4934545.html
Copyright © 2011-2022 走看看