Swift3.0语言教程删除字符与处理字符编码
Swift3.0语言教程删除字符与处理字符编码
Swift3.0语言教程删除字符
Swift3.0语言教程删除字符与处理字符编码,在字符串中,如果开发者有不需要使用的字符,就可以将这些字符删除。在NSString中trimmingCharacters(in:)方法就可以实现此功能,其语法形式如下:
func trimmingCharacters(in set: CharacterSet) -> String
其中,set用来设置要删除的字符集。
【示例1-72】以下将字符串中的空格和回车删除。
import Foundation
var a=NSString(string:"\n Hello ")
print("删除前:\(a)")
var b:CharacterSet=NSCharacterSet.whitespacesAndNewlines as CharacterSet
print("删除后:\(a.trimmingCharacters(in: b))") //去除空格和回车
运行结果如下:
删除前:
Hello
删除后:Hello
Swift3.0语言教程处理字符编码
字符编码也就是字符串中字符的编码格式,针对编码的不同,生成或者获取的字符串也是不一样的。本节将讲解以下有关字符编码的处理。
1.获取编码内容
在字符编码处理中,最为重要的就是要获取编码的内容,其中包括编码名称、字符串的最大编码值、最小编码值等内容。
(1)在NSString中的localizedName(of:)方法中,开发者可以获取一个人类可读的字符串,这个字符串就是给定编码的名称。其语法形式如下:
class func localizedName(of encoding: UInt) -> String
其中,encoding用来指定编码。
【示例1-73】以下将获取字符串中指定编码的名称。
import Foundation
print(NSString.localizedName(of: 1)) //获取名称
运行结果如下:
Western (ASCII)
(2)NSString中的description属性可以将任意编码的字符串转换为String类型的字符串(String我们会在后面的内容中进行讲解),其语法形式如下:
var description: String { get }
【示例1-74】以下将NSString类型的字符串转换为String类型的字符串。
import Foundation
var a=NSString(string:"Hello")
print(a.description)
运行结果如下:
Hello
(3)NSString中的fastestEncoding属性可以获取字符串的最大编码值,其语法形式如下:
var fastestEncoding: UInt { get }
【示例1-75】以下将获取字符串的最大编码值。
import Foundation
var a=NSString(string:"Hello")
print(a.fastestEncoding) //获取最大编码值
运行结果如下:
10
(4)NSString中的smallestEncoding属性正好和fastestEncoding属性相反,它可以获取字符串的最小编码值,其语法形式如下:
var smallestEncoding: UInt { get }
【示例1-76】以下将获取字符串的最小编码值。
import Foundation
var a=NSString(string:"Hello")
print(a.smallestEncoding) //获取最小编码值
运行结果如下:
1
2.判断是否可以无损坏转码
字符串在转换为指定格式的编码的字符串时,可能会由于某些原因丢失数据,形成损坏转码。但是这些过程开发者是看不到的。为了解决这一问题,首先我们需要判断字符串是否可以无损坏转码,如果可以的话,我们再进行转码。要判断字符串是否可以无损坏转码,需要使用到NSString中的canBeConverted(to:)方法,其语法形式如下:
func canBeConverted(to encoding: UInt) -> Bool
其中,encoding用来指定一个字符串编码。
【示例1-77】以下将判断字符串是否可以无损坏转码。
import Foundation
var a=NSString(string:"Hello")
print(a.canBeConverted(to: 1))
运行结果如下:
true
3.获取指定编码的NSData对象
获取指定编码的NSData对象,其实就是将字符串转换为NSData对象,这里NSString提供了2种方法,分别为data(using:)和data(using:allowLossyConversion:)方法。
(1)data(using:)方法就是要获取指定编码的NSData对象,其语法形式如下:
func data(using encoding: UInt) -> Data?
其中,encoding用来指定编码。
【示例1-78】以下将获取指定编码的NSData对象。
import Foundation
var a=NSString(string:"Hello")
print(a.data(using: 1))
运行结果如下:
Optional(<48656c6c 6f>)
(2)data(using:allowLossyConversion:)方法和data(using:)方法类似,但是它比data(using:)方法多了一个lossy参数。这个参数用来设置是在转换过程中是否可以移除或者改变字符。当开发者将这个参数设置true时,则在转换过程中允许移除或者改变字符,反之,则不允许。其语法形式如下:
func data(using encoding: UInt, allowLossyConversion lossy: Bool) -> Data?
【示例1-79】以下将获取指定编码的NSData对象。
import Foundation
var a=NSString(string:"Hello")
print(a.data(using: 1, allowLossyConversion: true))
运行结果如下:
Optional(<48656c6c 6f>)
Swift3.0语言教程删除字符与处理字符编码
Swift3.0语言教程删除字符与处理字符编码的更多相关文章
- Swift3.0语言教程使用路径字符串
Swift3.0语言教程使用路径字符串 Swift3.0语言教程使用路径字符串,路径其实是字符串的一种,我们称为路径字符串.本小节将讲解如何使用路径字符串. 1.组合路径 开发者可以将数组快速的组合成 ...
- Swift3.0语言教程查找字符集和子字符串
Swift3.0语言教程查找字符集和子字符串 Swift3.0语言教程查找字符集和子字符串,在字符串中当字符内容很多时,我们就需要使用到查找字符集或者子字符串的方法.以下我们将讲解3种查找字符集和子字 ...
- Swift3.0语言教程获取字符
Swift3.0语言教程获取字符 Swift3.0语言教程获取字符,在字符串中获取某一下标位置(下标索引)处的字符是很常见的功能,在NSString中使用character(at:)方法实现,其语法形 ...
- Swift3.0语言教程替换子字符串
Swift3.0语言教程替换子字符串 Swift3.0语言教程替换子字符串,替换子字符串其实就是将字符串中的子字符串删除,然后再进行添加.为了让这一繁琐的过程变的简单,NSString提供了替换子字符 ...
- Swift3.0语言教程字符串与URL的数据转换与自由转换
Swift3.0语言教程字符串与URL的数据转换与自由转换 Swift3.0语言教程字符串与URL的数据转换 Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以 ...
- Swift3.0语言教程字符串与文件的数据转换
Swift3.0语言教程字符串与文件的数据转换 Swift3.0语言教程字符串与文件的数据转换,如果想要对字符串中的字符进行永久保存,可以将字符串中的字符写入到文件中.当然,开发者也可以将写入的内容进 ...
- Swift3.0语言教程分割字符串与截取字符串
Swift3.0语言教程分割字符串与截取字符串 Swift3.0语言教程分割字符串 如果想要快速的创建一个数组,我们可以将字符串进行分割,分割后的内容将会生成一个数组.在NSString中有两个分割字 ...
- Swift3.0语言教程字符串大小写转化
Swift3.0语言教程字符串大小写转化 Swift3.0语言教程字符串大小写转化,在字符串中,字符串的格式是很重要的,例如首字母大写,全部大写以及全部小写等.当字符串中字符很多时,通过人为一个一个的 ...
- Swift3.0语言教程获取字符串长度
Swift3.0语言教程获取字符串长度 Swift3.0语言教程获取字符串长度,当在一个字符串中存在很多的字符时,如果想要计算字符串的长度时相当麻烦的一件事情,在NSString中可以使用length ...
随机推荐
- ul 仿 table 循环滚动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 3.UNION
--联合结果集union(集合运算符-- group by StudentNo union ---union可以合并多个结果集 --它有两个前提和一个注意: --1.合并的结果集的列数必须完全一致 - ...
- 【leetcode】Same Tree(easy)
Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...
- 【linux】学习4
文件压缩: gzip :压缩 解压缩 zcat: 读取压缩文件 gzip text1 :压缩text1 得到 text1.gz 原文件不见了 gzip -c text1 > text1.g ...
- iOS开发MAC下配置Svn和Git
如果你对iOS开发中的版本控制还不了解那么你可以先看看这篇(大致看一遍就ok) http://www.cnblogs.com/iCocos/p/4767692.html 关于版本控制使用起来并不难 ...
- xmpp即时通讯的笔记(摘抄)
xmpp的使用: 即时通讯 instant messaging(IM) : -->实时收发信息! 即时通讯相关软件: **QQ,MSN,GoogleTalk,AIM,Jabber(XMPP别名 ...
- 选择题(codevs 2919)
2919 选择题 时间限制: 1 s 空间限制: 16000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 某同学考试,在N*M的答题卡上写 ...
- Android Programming: Pushing the Limits -- Chapter 1: Fine-Tuning Your Development Environment
ADB命令 Application Exerciser Monkey Gradle ProGuard 代码重用 版本控制 静态代码分析 代码重构 开发者模式 ADB命令: @.adb help:查 ...
- elk安装(这个是初级的可以把这个套件安上)
http://udn.yyuap.com/doc/logstash-best-practice-cn/index.html ELK其实并不是一款软件,而是一整套解决方案,是三个开源软件Elastics ...
- 【JAVA之泛型】
一.引例. 1.引例. 假设现在有一个ArrayList的容器,如果不使用泛型约束,则可以向容器中加入各种类型的对象,但是如果取出来的时候只是用一种类型的转换则肯定会抛出ClassCastExcept ...