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することをお勧めします。