====== 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.