Dieses Mal verwende ich häufig Standardeingaben für Programmierprobleme, daher hinterlasse ich eine Notiz. Die verwendete Sprache ist Ruby.
Standardeingabe
Tokyo
line = gets
p line
Ausgabeergebnis
"Tokyo"
Standardeingabe
Tokyo Osaka Kyoto
line = gets.split(' ')
p line
Ausgabeergebnis
["Tokyo", "Osaka", "Kyoto"]
Bei Verwendung der Split-Methode werden die drei Elemente separat im Array gespeichert.
Standardeingabe
Tokyo
Osaka
Kyoto
line = readlines
len = line.length
i = 0
while i < len
line[i] = line[i].chomp
i += 1
end
p line
Ausgabeergebnis
["Tokyo", "Osaka", "Kyoto"]
Eine prägnante Möglichkeit, das Obige zu schreiben, ist die Verwendung der Kartenmethode.
Standardeingabe
Tokyo
Osaka
Kyoto
line = readlines.map(&:chomp)
p line
Ausgabeergebnis
["Tokyo", "Osaka", "Kyoto"]
Standardeingabe
Tokyo Osaka Kyoto
Japan USA China
line = readlines
len = line.length
i = 0
while i < len
line[i] = line[i].chomp.split(' ')
i += 1
end
p line
Ausgabeergebnis
[["Tokyo", "Osaka", "Kyoto"], ["Japan", "USA", "China"]]
Es gibt auch das Folgende als eine prägnante Art, das Obige zu schreiben
Standardeingabe
Tokyo Osaka Kyoto
Japan USA China
lines = []
while line = gets
lines << line.chomp.split(' ')
end
p lines
Ausgabeergebnis
[["Tokyo", "Osaka", "Kyoto"], ["Japan", "USA", "China"]]
Wenn Sie einstellen, während line = get ist, wird dies wiederholt, bis alle Standardeingabewerte erfasst sind.
Standardeingabe
Tokyo Osaka Kyoto
Japan USA China
lines = readlines(chomp: true).map{|line| line.split(' ')}
p lines
Ausgabeergebnis
[["Tokyo", "Osaka", "Kyoto"], ["Japan", "USA", "China"]]
Wenn Sie das Ausgabeergebnis betrachten, ist der empfangene Wert eine Zeichenfolge. Wenn Sie also einen numerischen Wert erhalten möchten, gehen Sie wie folgt vor
Standardeingabe
123
line = gets.to_i
p line
Ausgabeergebnis
123
Standardeingabe
1 2 3
line = gets.split(' ')
p line
Ausgabeergebnis
["1", "2", "3"]
Wenn dies unverändert bleibt, wird es als Zeichenfolge behandelt. Verwenden Sie also map, um es in ein Array vom numerischen Typ zu konvertieren.
Standardeingabe
1 2 3
line = gets.split(' ').map(&:to_i)
p line
Ausgabeergebnis
[1, 2, 3]
Standardeingabe
1
2
3
line = readlines.map(&:to_i)
p line
Ausgabeergebnis
[1, 2, 3]
Standardeingabe
1 2 3
4 5 6
lines = []
while line = gets
lines << line.chomp.split(' ').map(&:to_i)
end
p lines
Ausgabeergebnis
[[1, 2, 3], [4, 5, 6]]
Hier erfahren Sie, wie Sie präziser schreiben können
Standardeingabe
1 2 3
4 5 6
lines = readlines(chomp: true).map{|line| line.split(' ').map(&:to_i)}
p lines
Ausgabeergebnis
[[1, 2, 3], [4, 5, 6]]
Ich denke, es gibt verschiedene andere Methoden, deshalb werde ich sie von Zeit zu Zeit aktualisieren.
Recommended Posts