Swift3.0語言教程刪除字元與處理字元編碼

大學霸發表於2016-11-17

Swift3.0語言教程刪除字元與處理字元編碼

Swift3.0語言教程刪除字元

Swift3.0語言教程刪除字元與處理字元編碼,在字串中,如果開發者有不需要使用的字元,就可以將這些字元刪除。在NSStringtrimmingCharacters(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)

2NSString中的description屬性可以將任意編碼的字串轉換為String型別的字串(String我們會在後面的內容中進行講解),其語法形式如下:

var description: String { get }

【示例1-74】以下將NSString型別的字串轉換為String型別的字串。

import Foundation

var a=NSString(string:"Hello")

print(a.description)

執行結果如下:

Hello

3NSString中的fastestEncoding屬性可以獲取字串的最大編碼值,其語法形式如下:

var fastestEncoding: UInt { get }

【示例1-75】以下將獲取字串的最大編碼值。

import Foundation

var a=NSString(string:"Hello")

print(a.fastestEncoding)                                                                  //獲取最大編碼值

執行結果如下:

10

4NSString中的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:)方法。

1data(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>)

2data(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語言教程分割字串與擷取字串

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2128597/,如需轉載,請註明出處,否則將追究法律責任。

相關文章