====== Tag 5: Hydrothermale Quellen ======
===== Aufgabe, Beispiele, Input =====
* Aufgabe: https://adventofcode.com/2021/day/5
* Input-Dateien: {{ d5.zip |}}
* Ergebnis für die Datei ''d5i'': ++ Teil 1 |6572 ++ ++Teil2 |21466 ++
===== Tipp zur Eingabeaufbereitung =====
An Tag 5 sehen die Eingabezeilen wie folgt aus:
0,9 -> 5,9
8,0 -> 0,8
9,4 -> 3,4
2,2 -> 2,1
7,0 -> 7,4
6,4 -> 2,0
0,9 -> 2,9
3,4 -> 1,4
0,0 -> 8,8
5,5 -> 8,2
Wobei die durch Kommata getrennten Zahlen x,y-Koordinaten von Punkten entsprechen.
Ein denkbares Vorgehen, diese Eingabe aufzubereiten ist folgende:
readInput(this.inputFile, '-');
Erzeugt in ''line[0]'' das erste Zahlenpaar mit Komma und in ''line[1]'' einen String, der so aussieht:
> 0,9
Beachten muss man auch, dass die Teilstrings am Beginn und Ende noch Leerzeichen haben.
// Ein Iterator über input für String-Arrays
Iterator lineIterator = input.iterator();
while( lineIterator.hasNext() ) {
String[] line = lineIterator.next();
// Clean input: remove > and whitespaces
for(int i=0; i',' ');
line[i] = line[i].trim();
}
// Jetzt etnhält auch line[1] das durch Komma getrennte Koordinatenpaar
// Nun kann man den Startpunk und den Endpunkt mit split erzeugen
String[] start = line[0].split(",");
String[] end = line[1].split(",");
// ... weitere Dinge, die man machen möchte ...
}
Ebensogut kann man natürlich beim Einlesen das Array am ''>'' aufteilen und den dann übrigen ''-'' eliminieren.