LoginSignup
0
0

More than 5 years have passed since last update.

Swift4.2 半角全角数字を漢数字へ変換の話 ?

Posted at

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] -> 地
*/


ここまで

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0