[iOS 10] 全角文字列を半角文字列に変換する
文字列を変換する
NSString の applyingTransform() というメソッドを利用すれば、文字列を簡単に変換することができます。
このメソッドで全角文字列を半角文字列に変換する方法について説明します。
サンプルコード
let before = "123456789@abcdefg" if let after = before.applyingTransform(.fullwidthToHalfwidth, reverse: false) { print("before = \(before)") print("after = \(after)") }
実行結果
before = 123456789@abcdefg after = 123456789@abcdefg
解説
全角文字列の before
変数に対して applyingTransform() メソッドを実行しています。
全角 <-> 半角 の変換を行う場合は、第一引数で fullwidthToHalfwidth
を指定します。
第二引数ではどちらの方向に変換するかを指定します。
false
の場合は 全角 -> 半角、true
の場合は 半角 -> 全角 となります。
変換結果を変数 after
に代入し、それぞれの変数を出力しています。
不正な変換の場合は nil が返ります。
このメソッドは自動で該当箇所のみの変換も行ってくれるので、場合によっては便利に使えるかもしれません。
例
before = 123456789@abcdefg after = 123456789@abcdefg
StringTransform
StringTransform は applyingTransform() メソッドの第一引数に指定する型ですが、これは iOS 10 から利用できるようになった NSString のエイリアスです。
よって、このメソッドは iOS 9 から利用することができますが、StringTransform を指定できるのは iOS 10 からとなります。
extension StringTransform { @available(iOS 9.0, *) public static let latinToKatakana: StringTransform @available(iOS 9.0, *) public static let latinToHiragana: StringTransform @available(iOS 9.0, *) public static let latinToHangul: StringTransform @available(iOS 9.0, *) public static let latinToArabic: StringTransform @available(iOS 9.0, *) public static let latinToHebrew: StringTransform @available(iOS 9.0, *) public static let latinToThai: StringTransform @available(iOS 9.0, *) public static let latinToCyrillic: StringTransform @available(iOS 9.0, *) public static let latinToGreek: StringTransform @available(iOS 9.0, *) public static let toLatin: StringTransform @available(iOS 9.0, *) public static let mandarinToLatin: StringTransform @available(iOS 9.0, *) public static let hiraganaToKatakana: StringTransform @available(iOS 9.0, *) public static let fullwidthToHalfwidth: StringTransform @available(iOS 9.0, *) public static let toXMLHex: StringTransform @available(iOS 9.0, *) public static let toUnicodeName: StringTransform @available(iOS 9.0, *) public static let stripCombiningMarks: StringTransform @available(iOS 9.0, *) public static let stripDiacritics: StringTransform }
その他の変換
StringTransform を見てみると、全角 <-> 半角 以外にも ひらがな <-> カタカナ の変換などが可能ということがわかります。
またラテン語への変換もできますが、これはあくまで 表記の変換 であり 翻訳 ではないということに注意してください。
さいごに
applyingTransform() メソッドを利用すれば、簡単に 全角 <-> 半角 や ひらがな <-> カタカナ の変換を行うことができます。
アプリでガードをかけたい場合に利用してみてはいかがでしょうか。
リンク
ミレニアム・ファルコン製作日記 #43
43 号 表紙
パーツ
成果
今回の作業は以下の 1 つでした。
- 着陸脚カバープレートを取り付ける
大きめのパーツに対する作業でした。
「着陸脚カバープレート」というものを、対応する外殻プレートのくぼみに合わせて磁石でくっつけました。
今のところ、これがどのような役割を果たすかはまだわかりません。
後の号で外殻フレームに取り付けるまで大切に保管しておきます。
それではまた次回。
May the Force be with you!