Übung Java Programmcode Parser
Aufgabe
Schreiben Sie ein Programm, welches eine Java Quellcode-Datei liest und die offenen und geschlossenen Klammern zählt. Hier als Hilfe das Codegerüst:
package ch.std.jpf2.lambda.stream.brackets;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Map;
import java.util.TreeMap;
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class CountBracketsInJavaFile {
public static void main(String[] args) {
if (args.length <= 0) {
System.err.println("no args");
System.exit(1);
}
final Path file = Paths.get(args[0]);
try (final Stream<String> lines = Files.lines(file)) {
final Map<Character, Integer> count = lines
.flatMap(line -> IntStream.range(0, line.length()).mapToObj(line::charAt))
.filter(TODO:filter lambda expression)
.collect(TreeMap::new, (m, c) -> m.merge(c, 1, Integer::sum), Map::putAll);
// TODO , print count map using forEeach
} catch (IOException e) {
e.printStackTrace();
}
}
}
Ersetzen Sie die TODO Bereiche mit dem gesuchten Code für die Parser Lösung.Kopieren Sie fürs testen eine Java Datei ins Projekt-Rootverzeichnis, damit können Sie als Command Line Parameter die Datei mit dem Namen ohne Pfad definieren.
Lösung
2 mögliche Lösungen finden Sie hier