摘要 string类型是objective-c中用的最多的类型之一,有时会出现字符串中有我们不想要的字符。 如 "hello world"中的空格,或是"hello/world"中的'/',亦或是"你好A你好"中的'A'。这些都可以通过NSString中的方法来解决。

一、带节点的字符串,如@"<p>讨厌的节点<br/></p>"我们只想要中间的中文

处理方法一:

NSString *string1 = @"<p>讨厌的节点<br/></p>";

        /*此处将不想要的字符全部放进characterSet1中,不需另外加逗号或空格之类的,除非字符串中有你想要去除的空格,此处< p /等都是单独存在,不作为整个字符*/

        NSCharacterSet *characterSet1 = [NSCharacterSet characterSetWithCharactersInString:@"<p/brh>"];

        // 将string1按characterSet1中的元素分割成数组

        NSArray *array1 = [string1 componentsSeparatedByCharactersInSet:characterSet1];

        NSLog(@"array = %@",array1);

        for(NSString *string1 in array1)
{
if ([string1 length]>0) { // 此处string即为中文字符串 NSLog(@"string = %@",string1);
}
}

打印结果: 2013-05-31 10:55:34.017 string[17634:303]

array = (
    "",
    "",
    "",
    "\U8ba8\U538c\U7684\U8282\U70b9",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    ""
)
2013-05-31 10:55:34.049 string[17634:303] 
string = 讨厌的节点

二、带空格的字符串,如

@"hello world"去掉空格

NSString *string2 = @"hello world";

        /*处理空格*/

        NSCharacterSet *characterSet2 = [NSCharacterSet whitespaceCharacterSet];

        // 将string1按characterSet1中的元素分割成数组
NSArray *array2 = [string2 componentsSeparatedByCharactersInSet:characterSet2]; NSLog(@"\narray = %@",array2); // 用来存放处理后的字符串
NSMutableString *newString1 = [NSMutableString string]; for(NSString *string in array1)
{
[newString1 appendString:string];
}
NSLog(@"newString = %@", newString1);

打印结果:

2013-05-31 11:02:49.656 string[17889:303] 
array = (
    hello,
    world
)
2013-05-31 11:02:49.657 string[17889:303] newString = helloworld

PS:处理字母等其他元素只需将NSCharacterSet的值改变即可。

+ (id)controlCharacterSet;

+ (id)whitespaceCharacterSet;

+ (id)whitespaceAndNewlineCharacterSet;

+ (id)decimalDigitCharacterSet;

+ (id)letterCharacterSet;

+ (id)lowercaseLetterCharacterSet;

+ (id)uppercaseLetterCharacterSet;

+ (id)nonBaseCharacterSet;

+ (id)alphanumericCharacterSet;

+ (id)decomposableCharacterSet;

+ (id)illegalCharacterSet;

+ (id)punctuationCharacterSet;

+ (id)capitalizedLetterCharacterSet;

+ (id)symbolCharacterSet;

+ (id)newlineCharacterSet NS_AVAILABLE(10_5, 2_0);

+ (id)characterSetWithRange:(NSRange)aRange;

+ (id)characterSetWithCharactersInString:(NSString *)aString;

+ (id)characterSetWithBitmapRepresentation:(NSData *)data;

+ (id)characterSetWithContentsOfFile:(NSString *)fName;

NSString 处理技巧:分割字符串的更多相关文章

  1. JS截取与分割字符串常用技巧总结

    本文实例讲述了JS截取与分割字符串的常用方法.分享给大家供大家参考,具体如下: JS截取字符串可使用 substring()或者slice() 函数:substring() 定义:substring( ...

  2. Swift3.0语言教程分割字符串与截取字符串

    Swift3.0语言教程分割字符串与截取字符串 Swift3.0语言教程分割字符串 如果想要快速的创建一个数组,我们可以将字符串进行分割,分割后的内容将会生成一个数组.在NSString中有两个分割字 ...

  3. SQLServer实现split分割字符串到列

    网上已有人实现sqlserver的split函数可将字符串分割成行,但是我们习惯了split返回数组或者列表,因此这里对其做一些改动,最终实现也许不尽如意,但是也能解决一些问题. 先贴上某大牛写的sp ...

  4. 笔记:iOS字符串的各种用法(字符串插入、字符串覆盖、字符串截取、分割字符串)(别人的代码直接复制过来的,我脸皮有点厚)

    NSString* str=@"hello";//存在代码区,不可变 NSLog(@"%@",str); //1.[字符串插入] NSMutableString ...

  5. iOS字符串的各种用法(字符串插入、字符串覆盖、字符串截取、分割字符串)

    NSString* str=@"hello";//存在代码区,不可变 NSLog(@"%@",str); //1.[字符串插入] NSMutableString ...

  6. Delphi中stringlist分割字符串的用法

    Delphi中stringlist分割字符串的用法 TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 1.CommaT ...

  7. C语言分割字符串

    最近在做一道C语言题目的时候需要用到分割字符串,本来想自己手写的,也不会很麻烦,但想到其他语言都有分割字符串的库函数,C语言怎么会没有呢?所以,在网上搜了一搜,果然有这样的函数,还是很好用的,在此总结 ...

  8. Android--split()分割字符串特殊用法

    split()分割字符串 1.不同环境下的区分 Java:分割字符串不能写成split("$")//$为要分割的字符Android:分割字符串需要加上中括号split(" ...

  9. Sql Server分割字符串函数

    -- Description: 分割字符串函数 -- SELECT * FROM dbo.Split('a,b,c,d,e,f,g',',') -- ========================= ...

  10. lua string的自定义分割字符串接口

    -------------------------------------------------------------------- --  Create By  SunC 2014/7/1 -- ...

随机推荐

  1. mysql导入和导出数据

    Linux下如何单个库进行导入和备份操作 1.将数据导入数据库mysql -u账号 -p密码 数据库<sql脚本 mysql -uroot -proot test</home/upload ...

  2. iOS中的NSTimer 和 Android 中的Timer

    首先看iOS的, Scheduling Timers in Run Loops A timer object can be registered in only one run loop at a t ...

  3. php配置文件语法

    2013年12月11日 09:21:58 ; The syntax of the file is extremely simple. Whitespace and lines ; beginning ...

  4. plsql查询数据显示为乱码解决方法

    使用plsql查询数据显示为乱码: 查看数据库编码: 通过网上搜索,发现需要设置环境变量,添加以下环境变量: LANG=zh_CN.GBK NLS_LANG="SIMPLIFIED CHIN ...

  5. Thread源码分析

    本文为转载,请珍惜别人的劳动成果,注明转载地址:http://www.cnblogs.com/gw811/archive/2012/10/15/2724602.html 1.Runnable接口源码: ...

  6. SPI通信实验---verilog(FPGA作为从机,使用可读可写)

    本实验讲究实用性,故设计思想为:主机先向从机发送地址,若是向从机写入数据,则向从机发送数据,若是读取从机数据,则向从机发送时钟,然后在时钟下降沿读取数据即可.cs信号上升沿作为SPI通信的结束信号.r ...

  7. List、Map、Set

    这样的题属于随意发挥题:这样的题比较考水平,两个方面的水平:一是要真正明白这些内容,二是要有较强的总结和表述能力.如果你明白,但表述不清楚,在别人那里则等同于不明白. 首先,List与Set具有相似性 ...

  8. hdu 1240:Asteroids!(三维BFS搜索)

    Asteroids! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  9. GBK、GB2312、iso-8859-1之间的区别

    转自:http://blog.csdn.net/jerry_bj/article/details/5714745 GBK.GB2312.iso-8859-1之间的区别 GB2312,由中华人民共和国政 ...

  10. 翻阅《数据结构与算法javascript描述》--数组篇

    导读: 这篇文章比较长,介绍了数组常见的操作方法以及一些注意事项,最后还有几道经典的练习题(面试题). 数组的定义: JavaScript 中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性 ...