博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Swift去掉字符串中的空格
阅读量:5949 次
发布时间:2019-06-19

本文共 957 字,大约阅读时间需要 3 分钟。

笔试面试时经常会出这样的问题:从某个字符串中删除多余的空格,因为英文是使用空格进行分词的,而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)

最终效果:

这里写图片描述

你可能感兴趣的文章
python-while循环
查看>>
手机端上传图片及java后台接收和ajaxForm提交
查看>>
【MSDN 目录】C#编程指南、C#教程、ASP.NET参考、ASP.NET 4、.NET Framework类库
查看>>
jquery 怎么触发select的change事件
查看>>
angularjs指令(二)
查看>>
<气场>读书笔记
查看>>
领域驱动设计,构建简单的新闻系统,20分钟够吗?
查看>>
web安全问题分析与防御总结
查看>>
React 组件通信之 React context
查看>>
Linux下通过配置Crontab实现进程守护
查看>>
ios 打包上传Appstore 时报的错误 90101 90149
查看>>
Oracle推出轻量级Java微服务框架Helidon
查看>>
密码概述
查看>>
jQuery的技巧01
查看>>
基于泛型实现的ibatis通用分页查询
查看>>
gopacket 使用
查看>>
AlertDialog对话框
查看>>
我的友情链接
查看>>
linux安全---cacti+ntop监控
查看>>
鸟哥的linux私房菜-shell简单学习-1
查看>>