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语言教程删除字符与处理字符编码的更多相关文章

  1. Swift3.0语言教程使用路径字符串

    Swift3.0语言教程使用路径字符串 Swift3.0语言教程使用路径字符串,路径其实是字符串的一种,我们称为路径字符串.本小节将讲解如何使用路径字符串. 1.组合路径 开发者可以将数组快速的组合成 ...

  2. Swift3.0语言教程查找字符集和子字符串

    Swift3.0语言教程查找字符集和子字符串 Swift3.0语言教程查找字符集和子字符串,在字符串中当字符内容很多时,我们就需要使用到查找字符集或者子字符串的方法.以下我们将讲解3种查找字符集和子字 ...

  3. Swift3.0语言教程获取字符

    Swift3.0语言教程获取字符 Swift3.0语言教程获取字符,在字符串中获取某一下标位置(下标索引)处的字符是很常见的功能,在NSString中使用character(at:)方法实现,其语法形 ...

  4. Swift3.0语言教程替换子字符串

    Swift3.0语言教程替换子字符串 Swift3.0语言教程替换子字符串,替换子字符串其实就是将字符串中的子字符串删除,然后再进行添加.为了让这一繁琐的过程变的简单,NSString提供了替换子字符 ...

  5. Swift3.0语言教程字符串与URL的数据转换与自由转换

    Swift3.0语言教程字符串与URL的数据转换与自由转换 Swift3.0语言教程字符串与URL的数据转换 Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以 ...

  6. Swift3.0语言教程字符串与文件的数据转换

    Swift3.0语言教程字符串与文件的数据转换 Swift3.0语言教程字符串与文件的数据转换,如果想要对字符串中的字符进行永久保存,可以将字符串中的字符写入到文件中.当然,开发者也可以将写入的内容进 ...

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

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

  8. Swift3.0语言教程字符串大小写转化

    Swift3.0语言教程字符串大小写转化 Swift3.0语言教程字符串大小写转化,在字符串中,字符串的格式是很重要的,例如首字母大写,全部大写以及全部小写等.当字符串中字符很多时,通过人为一个一个的 ...

  9. Swift3.0语言教程获取字符串长度

    Swift3.0语言教程获取字符串长度 Swift3.0语言教程获取字符串长度,当在一个字符串中存在很多的字符时,如果想要计算字符串的长度时相当麻烦的一件事情,在NSString中可以使用length ...

随机推荐

  1. 仿知乎程序 fragment的切换以及toolbar在不同页面下显示的menu不同

           我们在看知乎的时候,你会发现,首页,发现,关注,收藏,草稿这五项,你在点击之后进入到相应页面之后,侧滑菜单还在,你左侧滑一下,这个侧滑菜单还在,而提问,左滑屏幕,这个页面就没有,有点像返 ...

  2. codeforces gym 100286 H - Hell on the Markets (贪心算法)

    题目链接 题意:n个数分别为a[i],问是否存在一组对应的b[i],b[i]=1 || b[i]=-1,使得ai*bi的n项和为0. 题解: 先证明一个结论吧,对于1≤ai≤i+1,前面ai个数一定可 ...

  3. ODBC连接发生错误:未发现数据源名称并且未指定默认驱动程序

    程序在使用ODBC方式连接数据库时发生错误: ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序. 什么原因造成的呢? 本人使用&l ...

  4. Android笔记:四大组件

    1.Activity(是用户可以看到的主要的界面,使用时需要在AndroidManifest.xml中编辑声明.) 启动模式: 启动模式一共有四种,分别是standard.singleTop.sing ...

  5. Mysql之取消主从复制

    Mysql5.7 Mysql取消主从复制很简单.只需在其要终止同步的Server上[一般是Slave]执行下面语句即可: stop slave; reset slave; 如图: .

  6. C#中的变量及命名规则

    变量: 1.作用 :可以让我们在计算机中存储数据 2.语法:变量类型    变量名=赋值: 3.常用的数据类型:  int   整数类型  取值范围:最大2147483647;最小-214748364 ...

  7. 20145206邹京儒《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)

    20145206<Java程序设计>实验报告一:Java开发环境的熟悉(Windows+IDEA) 实验内容及步骤 1.使用JDK编译.运行简单的Java程序: 建立实验目录: 在IDEA ...

  8. 20145206邹京儒《Java程序设计》第4周学习总结

    20145206 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 6.1 何谓继承 继承基本上就是避免多个类间重复定义共同行为 package cc.openhome; pu ...

  9. Android -- getQuantityString无效

    原文:http://www.xuebuyuan.com/1510993.html 原因:中文没有复数语法.

  10. Delphi面向对象的方法

    方法是属于一个给定对象的过程和函数,方法反映的是对象的行为而不是数据,前一篇提到的对象的两个重要的方法:构造方法和析构方法. 为了使对象能执行各种功能,你能在对象中定制方法 创建一个方法用两个步骤,首 ...