Ruby-Standardeingabe

Einführung

Dieses Mal verwende ich häufig Standardeingaben für Programmierprobleme, daher hinterlasse ich eine Notiz. Die verwendete Sprache ist Ruby.

Für Saiten

Wenn es nur ein Element pro Zeile gibt

Standardeingabe
Tokyo
line = gets
p line
Ausgabeergebnis
"Tokyo"

Wenn eine Zeile mehrere Elemente enthält

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.

Wenn Elemente einzeln in mehreren Zeilen vorhanden sind

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"]

Wenn mehrere Elemente in mehreren Zeilen vorhanden sind

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

Wenn Sie es numerisch erhalten möchten

Es gibt nur ein Element pro Zeile

Standardeingabe
123
line = gets.to_i
p line
Ausgabeergebnis
123

Wenn eine Zeile mehrere Elemente enthält

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]

Wenn ein Element in mehreren Zeilen vorhanden ist

Standardeingabe
1
2
3
line = readlines.map(&:to_i)
p line 

Ausgabeergebnis
[1, 2, 3]

Wenn mehrere Elemente in mehreren Zeilen vorhanden sind

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]]

Schließlich

Ich denke, es gibt verschiedene andere Methoden, deshalb werde ich sie von Zeit zu Zeit aktualisieren.

Recommended Posts

Ruby-Standardeingabe
Ruby-Standardeingabe und verschiedene Methoden
Ruby empfängt mehrzeilige Eingaben
[Ruby] Wie erhalte ich den Wert von der Standardeingabe?
Lesen Sie die Standardeingabe in Java
[Ruby] Empfangen Sie Eingaben von der Konsole
Ruby mit AtCoder lernen 11 So erhalten Sie häufig verwendete Standardeingaben
Rubin lernen 4
Geschichte von paiza.jp [Java Standard Input Solution]
[Ruby] Array
Rubin lernen 5
Ruby-Grundlagen
Ruby Review 2
Rubinzusatz
[Schienen] Holen Sie sich die Standardeingabe für mehrzeilige Daten
Ruby-Einstellung 2
Rubinproblem ⑦
Ruby lernen 2
Rubin lernen 6
Ruby-Einstellungen 1
Rubin lernen 1
Ruby Review 1
[Ruby] Erkennen Sie ASCII-Steuerzeichen wie ^ H wie vorgesehen, wenn Sie Standardeingaben akzeptieren
Eine Geschichte voller Javas Standardeingabescanner
Über den Standardeingabestream (System.in) nach dem Schließen
Ruby on Rails So implementieren Sie die automatische Adresseneingabe
[Ruby] Zusammenfassung, wie man Werte aus Standardeingaben erhält [Paiza Skill Check Measures]