faecher:informatik:oberstufe:java:aoc:aoc2021:day5:start

Tag 5: Hydrothermale Quellen

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<String []> lineIterator = input.iterator();
while( lineIterator.hasNext() ) {
    String[] line = lineIterator.next();
    // Clean input: remove > and whitespaces
    for(int i=0; i<line.length; i++) {
      line[i] = line[i].replace('>',' ');
      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.

  • faecher/informatik/oberstufe/java/aoc/aoc2021/day5/start.txt
  • Zuletzt geändert: 07.12.2021 07:30
  • von sbel