Swift3.0語言教程刪除字符與處理字符編碼,在字符串中,若是開發者有不須要使用的字符,就能夠將這些字符刪除。在NSString中trimmingCharacters(in:)方法就能夠實現此功能,其語法形式以下:編碼
func trimmingCharacters(in set: CharacterSet) -> Stringspa
其中,set用來設置要刪除的字符集。.net
【示例1-72】如下將字符串中的空格和回車刪除。對象
import Foundationblog
var a=NSString(string:"\n Hello ")教程
print("刪除前:\(a)")ip
var b:CharacterSet=NSCharacterSet.whitespacesAndNewlines as CharacterSet開發
print("刪除後:\(a.trimmingCharacters(in: b))") //去除空格和回車字符串
運行結果以下:get
刪除前:
Hello
刪除後:Hello
字符編碼也就是字符串中字符的編碼格式,針對編碼的不一樣,生成或者獲取的字符串也是不同的。本節將講解如下有關字符編碼的處理。
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語言教程刪除字符與處理字符編碼