使用Swift去掉字符串中的空格

简介: 笔试面试时经常会出这样的问题:从某个字符串中删除多余的空格,因为英文是使用空格进行分词的,而URL中通常会包括非常多的特殊字符,所以这是一种很常用的做法。

笔试面试时经常会出这样的问题:从某个字符串中删除多余的空格,因为英文是使用空格进行分词的,而URL中通常会包括非常多的特殊字符,所以这是一种很常用的做法。和OC中一样,在swift中也可以使用NSCharacterSet类来实现。对于字符串删空格操作,通常有两种情况:
1.删掉字符串首位的空格:

var str = "  Hello, play    ground    "
let whitespace = NSCharacterSet.whitespaceAndNewlineCharacterSet()
str = str.stringByTrimmingCharactersInSet(whitespace)

NSCharacter中有很多方法,可以用来设置不同的筛选条件,这里的whitespaceAndNewlineCharacterSet方法用来表示空格。方法stringByTrimmingCharactersInSet如方法名所示,是用来调整字符串的输出的,传入一个NSCharacter类型。上面的代码效果如下:
这里写图片描述
可以看到只是去掉了字符串首尾的空格而已。
2.去掉字符串首尾的空格,内部连续空格只保留一个:
这种情况也叫挤压空格,首先依旧执行上面的代码去掉首尾的空格,然后调用另一个方法把字符串存成数组:

var tempArray = str.componentsSeparatedByCharactersInSet(whitespace)

这个方法的作用是在遇到空格的地方把字符串拆开,存入数组,效果如图:
这里写图片描述
现在字符串中的每一个空格已经单独被存为了数组中的一个元素,然后使用filter删掉这些空格:

tempArray = tempArray.filter{
$0 != ""
}

现在的tempArray如下:
这里写图片描述
最后一步把这个数组拼接回正常的字符串,注意这里是挤压并不是删除,删除会影响语序,而挤压只会删除多余的空格,所以在拼接的时候要在原来有空格的地方加上一个空格,使用join方法,注意join的用法比较独特,要想把一个数组拼接成字符串,并使用某些字符来拼接,那么在让用来拼接的字符串调用join方法,传入数组(有点奇怪):

str = " ".join(tempArray)

最终效果:
这里写图片描述

目录
相关文章
|
6月前
|
编译器 Swift iOS开发
10 Swift中的字符串
Swift中的字符串
43 0
|
Java Swift iOS开发
Swift - 字符串
Swift - 字符串
85 0
|
Swift 索引
Swift实用小册03:字符串的使用
Swift实用小册03:字符串的使用
186 0
Swift实用小册03:字符串的使用
|
Swift
swift微博第2天(命名空间和控制器字符串)
swift微博第2天(命名空间和控制器字符串)
114 0
swift微博第2天(命名空间和控制器字符串)
|
安全 API Swift
Swift3.0带来的变化汇总系列一——字符串与基本运算符中的变化
Swift3.0带来的变化汇总系列一——字符串与基本运算符中的变化
153 0
|
Swift iOS开发
Swift解读专题四——字符串与字符
Swift解读专题四——字符串与字符
101 0
|
Swift iOS开发
8.Swift学习之字符串
字符串的介绍 字符串在开发中使用得非常频繁 OC和Swift中字符串的区别 在OC中字符串类型是NSString,在Swift中字符串类型是String OC中字符串@"",Swift中字符串"" 使用 String 的原因 String...
937 0
|
索引
掌握 Swift 的字符串细节
本文讲的是掌握 Swift 的字符串细节,String 类型在任何编程语言中都是一个重要的组成部分。而用户从 iOS 应用的屏幕上能读取到最有效的信息也来自文本。
976 0

相关课程

更多