Posted at

Stringクラスにひらがな・カタカナ変換をextensionする

More than 3 years have passed since last update.


ひらがな・カタカナについて


  • "ひらがな"とは、0x3041の"ぁ"から0x3096の"ゖ"とする

  • "カタカナ"とは、0x30A1の"ァ"から0x30F6の"ヶ"とする

  • 半角カタカナは無視


コード

extension String {

func katakana() -> String {
var str = ""

// 文字列を表現するUInt32
for c in unicodeScalars {
if c.value >= 0x3041 && c.value <= 0x3096 {
str.append(UnicodeScalar(c.value+96))
} else {
str.append(c)
}
}

return str
}

func hiragana() -> String {
var str = ""
for c in unicodeScalars {
if c.value >= 0x30A1 && c.value <= 0x30F6 {
str.append(UnicodeScalar(c.value-96))
} else {
str.append(c)
}
}

return str
}
}

var hoge = "ほげピヨ"

hoge.katakana() //"ホゲピヨ"
hoge.hiragana() //"ほげぴよ"