iOS字符串处理_替换(去掉空格换行)、截取

摘要:
以下代码主要实现:1.截取“@@”之前的字符串;2.从字符串中删除“##”;3.从字符串中删除空格和换行符。希望互相学习,互相纠正-----ViewController。m如下:------#import“ViewController.h”#import”HandleString.h“@interfaceViewController(){NSString*_str;NSString*

以下代码主要实现了: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

免责声明:文章转载自《iOS字符串处理_替换(去掉空格换行)、截取》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JVM内存结构、垃圾回收那点事(转)Oracle EBS FND User Info API (转) EBS用户账号密码职责相关下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

springboot2.0 redis EnableCaching的配置和使用

一、前言   关于EnableCaching最简单使用,个人感觉只需提供一个CacheManager的一个实例就好了。springboot为我们提供了cache相关的自动配置。引入cache模块,如下。 二、maven依赖 <dependency> <groupId>org.springframework.boot&...

Flink--将表转换为DataStream或DataSet

A Table可以转换成a DataStream或DataSet。通过这种方式,可以在Table API或SQL查询的结果上运行自定义的DataStream或DataSet程序 将表转换为DataStream 有两种模式可以将 Table转换为DataStream: 1:Append Mode 将一个表附加到流上 2:Retract Mode 将表转换为流...

OPCDAAuto.dll的C#使用方法浅析

上次研究了.Net版本的OPC API dll,这次我采用OPCDAAuto.dll来介绍使用方法。以下为我的源代码,有详细的注释无需我多言。编译平台:VS2008SP1、WINXP、KEPServer除此之外,我也安装了西门子的Net2006和Step7,其中Net2006是负责OPC的,可能会在系统中创建一些dll之类的,并提供几个OPC服务器以下是我...

Jsoup使用教程

一、解析和遍历一个HTML文档1、解析Html及Url链接 1 String html = "<html><head><title>First parse</title></head>" 2 + "<body><p>Parsed HTML into a doc.<...

Java经典练习题_Day03

一、选择 B D(死循环) E(switch) BC 二、编程 1、读入一个整数,表示一个人的年龄。 如果小于6岁,则输出“儿童”, 6岁到13岁,输出“少儿”; 14岁到18岁,输出“青少年”; 18岁到35岁,输出“青年”; 35岁到50岁,输出“中年”; 50 岁以上输出“中老年”。 import java.util.*; /* * 读入一个整数...

C#、Java和JS实现SHA256+BASE64加密总结

C#、Java和JS实现SHA256+BASE64加密总结--莫非(www.muphy.me) 原理 首先,通过编码格式(UTF-8、ASCII等,如果含有汉字等字符,编码格式不同加密结果也不同)获得加密字符串的字节数组,再计算字节数组的哈希值数组,再把hash数组转换为base64编码的字符串。 C#实例 class Program {//转...