LoginSignup
1
2

More than 3 years have passed since last update.

【Swift】複数行の標準入力の値を取得する

Posted at

Swiftでpaizaの問題を解くにあたって複数行の標準入力を取得しなければならない場面があり、ググりまくったものの

var input_lines = [String]()
let row = 3  
for i in 0..<row {
    input_lines.append(readLine()!)
}
print(input_lines) 

こんなような決め打ちのコードしか出てこなかったので初心者なりに考えてコード書いてみました。

本題

var lines = [String]();//文字列でない場合はここの方を変える
while true {
  let str:String? = readLine()//ここも文字列でない場合は型を変える
  if let str = str{
    lines.append(str)
  }else{
    break
  }
}
print(lines)

このコードであれば、例えば

Hello
World

のような2行の標準入力でも3行でも100行でも対応できます。

ただし

Hello World
This is a pen

このような一行に複数の値が存在する場合は

str.components(separatedBy: " ")

を使うなどして文字列を分割して配列にappendすることをお勧めします。

1
2
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
1
2