SWIFT-入力受信


SWIFTで入力を受信


1.設定項目


Playgroundではinputがサポートされていないため、Xcodeが使用されます
Command Line Toolプロジェクトを作成した後、コードを実行する必要があります.

2.単一値入力を受け入れる

readLine()関数を使用してコンソールウィンドウから入力を受信できます.
  • 結果値経常返還Optional<String>
  • 入力した値はInt型を使用し、以下の手順を経なければならない.
  • let a = readLine() //5
    print(type(of: a)) //Optional<String>
    
    let unwrappingA = a!
    print(type(of: unwrappingA)) //String
    
    let intA = Int(unwrappingA)
    print(type(of: intA)) //Optional<Int>
    
    let intUnwrappingA = intA!
    print(type(of: intUnwrappingA)) //Int
    以下の方法で省略できます.
    let a = Int(readLine()!)!

    3.クリップ文字列

    split()スペースベースで文字列を切り取ることができます.
    let name = readLine()! //n a m e
    print(type(of: name))  //String 
    
    let splitName = name.split(separator: " ") 
    print(type(of: splitName)) //Array<Substring>
    
    let closerSplitName = splitName.split { $0 == " " } //클로저 이용 
    print(type(of: closerSplitName)) //Array<Substring>
  • Split()Array<Substring>・として使用するためにはString形変換が必要String.
  • 4.文字列クリップ2


    使用可能components()ではなくArray<Substring>戻りArray<String>.
    import Foundation 
    
    let name = readLine()! //n a m e
    print(type(of: name))  //String
    
    let comName = name.components(separatedBy: " ") 
    print(type(of: comName)) //Array<String>
    返却可能
  • Array<String>
  • split()と異なり、components()輸入が必要Foundationのみ使用可能です.
  • 5.複数の整数入力を受信する


    mapとcloserを使用します.
    let vars = readLine()!.split(separator: " ").map { Int(String($0))! }
    print(type(of: vars))
  • Int($0)!比較Int(String($0))!速度が速い
    リファレンス
  • 6.オン単位で入力を受け付ける

    readLine()複数回使用
    let a = readLine()
    let b = readLine()
    print(a, b)
    1ゲームごとに、readLine()入力が完了します.

    7.連続入力

    1, 2, 3, 4, 512345のように連続入力する場合は、まず配列に変換して処理します.
    let vars = Array(readLine()!) //12345
    print(vars)  //["1", "2", "3", "4", "5"]
    print(type(of: vars)) //Array<Character>
    
    let intVars = vars.map { Int(String($0))! }
    print(intVars) //[1, 2, 3, 4, 5]
    print(type(of: intVars)) //Array<Int>

    サマリ

  • 整数入力を受け付ける
  • let a = Int(readLine())!`
  • 複数の整数入力
  • let a = readLine()!.split(separator: " ").map { Int(String($0))! }
  • 文字列を入力
  • let a = readLine()!
  • 複数文字列入力
  • let a = readLine()!.split(separator: " ")
    let b = readLine()!.split { $0 == " " }
  • 連続入力
  • let a = Array(readLine()!).map { Int(String($0))! }
    FissenをしているときにSweetを見て少しめまいがしました.