🤖

Swift 全角 英数字 半角 変換

2023/03/20に公開

いろいろ方法はあるが見た目一番簡単な方法
該当の文字を判定して、文字コードをずらすだけ
変換先と変換元の文字コードが連続していれば変換可能

swift
let str = "ア09AZaz"
var newStr = ""
for c in str.unicodeScalars {
    let radix: UInt32 // ずらす数値を入れる
    if "0"..."9" ~= c {
	radix = UnicodeScalar("0").value - UnicodeScalar("0").value
    } else if "A"..."Z" ~= c {
	radix = UnicodeScalar("A").value - UnicodeScalar("A").value
    } else if "a"..."z" ~= c {
	radix = UnicodeScalar("a").value - UnicodeScalar("a").value
    } else {
	radix = 0
    }
    newStr += String(describing: UnicodeScalar(c.value - radix)!)
}
print(newStr) // ア09AZaz

radixにずらす数値を入れる

Discussion