🤖
Swift 全角 英数字 半角 変換
いろいろ方法はあるが見た目一番簡単な方法
該当の文字を判定して、文字コードをずらすだけ
変換先と変換元の文字コードが連続していれば変換可能
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