Aufgabe ausgeführt.
This commit is contained in:
parent
84af686f58
commit
353df6c5f3
|
@ -0,0 +1,42 @@
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Worthaeufigkeitsanalyse analyse = new Worthaeufigkeitsanalyse();
|
||||||
|
File file = getFileFromArguments(args);
|
||||||
|
String text = "";
|
||||||
|
Scanner scanner = null;
|
||||||
|
try {
|
||||||
|
scanner = new Scanner(file);
|
||||||
|
while (scanner.hasNextLine()){
|
||||||
|
text = text + scanner.nextLine();
|
||||||
|
text = text + " ";
|
||||||
|
}
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
analyse.verarbeiteText(text);
|
||||||
|
|
||||||
|
analyse.druckeStatistik();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static File getFileFromArguments(String[] args) {
|
||||||
|
// ------------------------------------------------------------
|
||||||
|
// Check if a valid filename has been supplied on command line:
|
||||||
|
// ------------------------------------------------------------
|
||||||
|
// Is there a command line argument at all?
|
||||||
|
if (args.length <= 0) {
|
||||||
|
throw new IllegalArgumentException("ERROR: You have to supply a filename on the command line!");
|
||||||
|
}
|
||||||
|
// Yes, there is at least one argument:
|
||||||
|
String filename = args[0];
|
||||||
|
File file = new File(filename);
|
||||||
|
if (!file.exists()) { // Check if file with that name exists:
|
||||||
|
throw new RuntimeException(String.format("ERROR: Data file: '%s' does not exist!", filename));
|
||||||
|
}
|
||||||
|
return file;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,7 @@
|
||||||
|
import java.io.File;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -16,6 +19,9 @@ import java.util.Map;
|
||||||
public class Worthaeufigkeitsanalyse {
|
public class Worthaeufigkeitsanalyse {
|
||||||
// Anstelle der Map dürfen Sie auch andere Datentypen verwenden. Testen Sie auch TreeMap.
|
// Anstelle der Map dürfen Sie auch andere Datentypen verwenden. Testen Sie auch TreeMap.
|
||||||
private Map<String, Integer> woerterHaeufigkeit = new HashMap<>();
|
private Map<String, Integer> woerterHaeufigkeit = new HashMap<>();
|
||||||
|
private Map<String, Integer> zeichenHaeufigkeit = new HashMap<>();
|
||||||
|
private String text = new String();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Nimmt die uebergebene Zeichenkette in die Worthaeufigkeitsanalyse auf.
|
* Nimmt die uebergebene Zeichenkette in die Worthaeufigkeitsanalyse auf.
|
||||||
|
@ -23,23 +29,61 @@ public class Worthaeufigkeitsanalyse {
|
||||||
* @param text zu verarbeitende Zeichenkette
|
* @param text zu verarbeitende Zeichenkette
|
||||||
*/
|
*/
|
||||||
public void verarbeiteText(String text) {
|
public void verarbeiteText(String text) {
|
||||||
|
|
||||||
// TODO Ihre Implementation
|
// TODO Ihre Implementation
|
||||||
|
|
||||||
|
text = text.toLowerCase(Locale.ROOT);
|
||||||
|
|
||||||
|
analyseWorthaeufigkeit(text);
|
||||||
|
analyseZeichenhaeufigkeit(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void analyseWorthaeufigkeit(String text) {
|
||||||
|
String[] woerter = text.split("[.,?!\":; ]+");
|
||||||
|
for(String wort : woerter)
|
||||||
|
if(woerterHaeufigkeit.containsKey(wort)) {
|
||||||
|
woerterHaeufigkeit.put(wort, woerterHaeufigkeit.get(wort) + 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
woerterHaeufigkeit.put(wort, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void analyseZeichenhaeufigkeit(String text) {
|
||||||
|
for(int i = 0; i<text.length(); i++){
|
||||||
|
if(zeichenHaeufigkeit.containsKey(text.substring(i, i+1))) {
|
||||||
|
zeichenHaeufigkeit.put(text.substring(i, i+1), zeichenHaeufigkeit.get(text.substring(i, i+1)) + 1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
zeichenHaeufigkeit.put(text.substring(i, i+1), 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ausgabe der Worthaeufigkeitsanalyse auf der Konsole.
|
* Ausgabe der Worthaeufigkeitsanalyse auf der Konsole.
|
||||||
*/
|
*/
|
||||||
public void druckeStatistik() {
|
public void druckeStatistik() {
|
||||||
|
System.out.println("Worthäufigkeiten:");
|
||||||
for (Map.Entry<String, Integer> wortHaeufigkeit : woerterHaeufigkeit.entrySet()) {
|
for (Map.Entry<String, Integer> wortHaeufigkeit : woerterHaeufigkeit.entrySet()) {
|
||||||
System.out.printf("%3d %-40s%n", wortHaeufigkeit.getValue(), wortHaeufigkeit.getKey());
|
System.out.printf("%3d %-40s%n", wortHaeufigkeit.getValue(), wortHaeufigkeit.getKey());
|
||||||
}
|
}
|
||||||
|
System.out.println("Zeichenhäufigkeiten:");
|
||||||
|
for (Map.Entry<String, Integer> zeichenHaeufigkeit : zeichenHaeufigkeit.entrySet()) {
|
||||||
|
System.out.printf("%3d %-40s%n", zeichenHaeufigkeit.getValue(), zeichenHaeufigkeit.getKey());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
Worthaeufigkeitsanalyse hauefigkeitsanalyse = new Worthaeufigkeitsanalyse();
|
Worthaeufigkeitsanalyse hauefigkeitsanalyse = new Worthaeufigkeitsanalyse();
|
||||||
hauefigkeitsanalyse.verarbeiteText("Fritz sagt: \"Die Softwareentwicklung ist meine Leidenschaft!\"");
|
hauefigkeitsanalyse.verarbeiteText("Fritz sagt: \"Die Softwareentwicklung ist meine Leidenschaft!\"");
|
||||||
hauefigkeitsanalyse.verarbeiteText("Hans meint, er teile die Leidenschaft mit Fritz.");
|
hauefigkeitsanalyse.verarbeiteText("Hans meint, er teile die Leidenschaft mit Fritz.");
|
||||||
hauefigkeitsanalyse.verarbeiteText("John fuegt hinzu, dass die Softwareentwicklung nicht nur aus Programmieren bestehe, sondern es sich dabei um einen komplexen Prozess, bestehend aus vielen kleinen Komponenten, handelt.\"");
|
hauefigkeitsanalyse.verarbeiteText("John fuegt hinzu, dass die Softwareentwicklung nicht nur aus Programmieren bestehe, sondern es sich dabei um einen komplexen Prozess, bestehend aus vielen kleinen Komponenten, handelt.\"");
|
||||||
hauefigkeitsanalyse.druckeStatistik();
|
hauefigkeitsanalyse.druckeStatistik();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue