[Swift] 如何將字串在全型和半型之間轉換

在處理身分證字號時,有時使用者會不小心輸入全型的文字,或者我們要以全型的文字顯示地址等資訊。而在 Swift 中,我們如何將字串在全型和半型之間轉換呢?其實很簡單呢!快看這一篇文章,你馬上就會了!

 

swift

 

首先,我們先來寫一個字串的擴充。

  1. extension String {
  2.  
  3.     ///轉半形
  4.     var halfWidth: String {
  5.         transformFullWidthToHalfWidth(reverse: false)
  6.     }
  7.  
  8.     ///轉全型
  9.     var fullWidth: String {
  10.         transformFullWidthToHalfWidth(reverse: true)
  11.     }
  12.  
  13.     private func transformFullWidthToHalfWidth(reverse: Bool) -> String {
  14.         let string = NSMutableString(string: self) as CFMutableString
  15.         CFStringTransform(string, nil, kCFStringTransformFullwidthHalfwidth, reverse)
  16.         return string as String
  17.     }
  18. }

 

那麼,接下來你會怎麼用呢?就依底下的用法用就好了。

  1. var str = "Hello, playground"
  2. print(str.fullWidth)
  3. // Hello, playground

 

會這麼簡單的原因是在於我們在 halfWidth 時就已經呼叫「transformFullWidthToHalfWidth」將文字做全型和半型之間的轉換了,所以我們只要聰明地利用擴充,就可以將程式寫的更簡單唷!