Swift4.2 三項演算子ではなくてfor文とif文 ?
- 目的
単純にテーマの通りですが ? 参考サイトでは三項演算子で解決していますが ? 私はそれを少しは理解できますが ? 私は昔ながらのfor文とif文が好きなので変更してみました
こんなヤツ
- 1丁目136番地 -> 一丁目一三六番地
ViewController.swift
//
// ViewController.swift
// Hankaku_Zenkaku_Kanjihenkan
//
// Created by 福田敏一 on 2019/01/11.
// Copyright © 2019 福田敏一. All rights reserved.
//
//参考サイト https://slowlylearner.hateblo.jp/entry/2017/05/29/004223
import UIKit
class ViewController: UIViewController {
let japaneseNumericalChars : [String : String] = [
"0": "〇",
"1": "一",
"2": "二",
"3": "三",
"4": "四",
"5": "五",
"6": "六",
"7": "七",
"8": "八",
"9": "九",
"0": "〇",
"1": "一",
"2": "二",
"3": "三",
"4": "四",
"5": "五",
"6": "六",
"7": "七",
"8": "八",
"9": "九",
]
let stri : String = "1丁目136番地"//全角と半角数字が混合している
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let japaneseChars : Set = Set(japaneseNumericalChars.keys)
let strArr = stri.map{japaneseChars.contains($0.description)}
let mapTrue = stri.map{japaneseNumericalChars[$0.description]}
let stringArray : [String] = stri.map{($0.description)}
//三項演算子ではなくて私の分かりやすいコードで書いてみました
for i in 0..<stringArray.count {
if strArr[i] == true {
print("1通過・mapTrue[1] -> \(mapTrue[i]!)")
} else {
print("3通過・stringArray[i] -> \(stringArray[i])")
}
}
}
}
//実行結果
/*
1通過・mapTrue[1] -> 一
3通過・stringArray[i] -> 丁
3通過・stringArray[i] -> 目
1通過・mapTrue[1] -> 一
1通過・mapTrue[1] -> 三
1通過・mapTrue[1] -> 六
3通過・stringArray[i] -> 番
3通過・stringArray[i] -> 地
*/
ここまで