Main, Menu, Analyse Klassen kommentiert

This commit is contained in:
2016-05-20 12:34:27 +02:00
parent 672a1309bd
commit fc6cd439e2
7 changed files with 310 additions and 74 deletions

242
.idea/workspace.xml generated
View File

@@ -2,15 +2,11 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="e8709267-1337-4638-85fd-ec9407fa5fdd" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/out/production/Textanalyse/com/structix/Analyse.class" afterPath="$PROJECT_DIR$/out/production/Textanalyse/com/structix/Analyse.class" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/out/production/Textanalyse/com/structix/Main.class" afterPath="$PROJECT_DIR$/out/production/Textanalyse/com/structix/Main.class" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/out/production/Textanalyse/com/structix/Menu.class" afterPath="$PROJECT_DIR$/out/production/Textanalyse/com/structix/Menu.class" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/out/production/Textanalyse/com/structix/Menubuilder.class" afterPath="$PROJECT_DIR$/out/production/Textanalyse/com/structix/Menubuilder.class" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/structix/Analyse.java" afterPath="$PROJECT_DIR$/src/com/structix/Analyse.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/structix/Main.java" afterPath="$PROJECT_DIR$/src/com/structix/Main.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/structix/Menu.java" afterPath="$PROJECT_DIR$/src/com/structix/Menu.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/com/structix/Menubuilder.java" afterPath="$PROJECT_DIR$/src/com/structix/Menubuilder.java" />
</list>
<ignored path="Textanalyse.iws" />
<ignored path=".idea/workspace.xml" />
@@ -36,8 +32,8 @@
<file leaf-file-name="Main.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/com/structix/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="15" column="30" selection-start-line="15" selection-start-column="30" selection-end-line="15" selection-end-column="30" />
<state relative-caret-position="504">
<caret line="28" column="30" selection-start-line="28" selection-start-column="30" selection-end-line="28" selection-end-column="30" />
<folding />
</state>
</provider>
@@ -56,12 +52,9 @@
<file leaf-file-name="Analyse.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/structix/Analyse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240">
<caret line="117" column="59" selection-start-line="117" selection-start-column="59" selection-end-line="117" selection-end-column="59" />
<folding>
<element signature="e#3609#3610#0" expanded="true" />
<element signature="e#3670#3671#0" expanded="true" />
</folding>
<state relative-caret-position="3582">
<caret line="207" column="41" selection-start-line="207" selection-start-column="41" selection-end-line="207" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
@@ -89,8 +82,8 @@
<file leaf-file-name="Menu.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/com/structix/Menu.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1134">
<caret line="65" column="20" selection-start-line="65" selection-start-column="20" selection-end-line="65" selection-end-column="20" />
<state relative-caret-position="144">
<caret line="8" column="15" selection-start-line="8" selection-start-column="15" selection-end-line="8" selection-end-column="15" />
<folding />
</state>
</provider>
@@ -116,10 +109,10 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/com/structix/Analyse.java" />
<option value="$PROJECT_DIR$/src/com/structix/Menubuilder.java" />
<option value="$PROJECT_DIR$/src/com/structix/Menu.java" />
<option value="$PROJECT_DIR$/Test.txt" />
<option value="$PROJECT_DIR$/src/com/structix/Menu.java" />
<option value="$PROJECT_DIR$/src/com/structix/Analyse.java" />
<option value="$PROJECT_DIR$/src/com/structix/Main.java" />
</list>
</option>
@@ -161,6 +154,7 @@
<panes>
<pane id="PackagesPane" />
<pane id="Scratches" />
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<PATH>
@@ -199,7 +193,6 @@
</PATH>
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
@@ -635,11 +628,14 @@
<workItem from="1463423535807" duration="5731000" />
<workItem from="1463476002834" duration="78000" />
<workItem from="1463476096375" duration="5362000" />
<workItem from="1463492544438" duration="867000" />
<workItem from="1463653975356" duration="937000" />
<workItem from="1463735643744" duration="4784000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="26596000" />
<option name="totallyTimeSpent" value="33184000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="0" width="2560" height="1398" extended-state="6" />
@@ -653,7 +649,7 @@
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32919255" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3206522" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
@@ -694,6 +690,150 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/com/structix/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Beispieltext.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="54">
<caret line="3" column="0" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Analyse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1998">
<caret line="117" column="59" selection-start-line="117" selection-start-column="59" selection-end-line="117" selection-end-column="59" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Menubuilder.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2088">
<caret line="120" column="0" selection-start-line="120" selection-start-column="0" selection-end-line="120" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Test.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
<caret line="2" column="3" selection-start-line="2" selection-start-column="3" selection-end-line="2" selection-end-column="3" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Menu.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1134">
<caret line="65" column="20" selection-start-line="65" selection-start-column="20" selection-end-line="65" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Beispieltext.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="54">
<caret line="3" column="0" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Analyse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1998">
<caret line="117" column="59" selection-start-line="117" selection-start-column="59" selection-end-line="117" selection-end-column="59" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Menubuilder.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2088">
<caret line="120" column="0" selection-start-line="120" selection-start-column="0" selection-end-line="120" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Test.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
<caret line="2" column="3" selection-start-line="2" selection-start-column="3" selection-end-line="2" selection-end-column="3" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Menu.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1134">
<caret line="65" column="20" selection-start-line="65" selection-start-column="20" selection-end-line="65" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Beispieltext.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="54">
<caret line="3" column="0" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Analyse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1998">
<caret line="117" column="59" selection-start-line="117" selection-start-column="59" selection-end-line="117" selection-end-column="59" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Menubuilder.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2088">
<caret line="120" column="0" selection-start-line="120" selection-start-column="0" selection-end-line="120" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Test.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
<caret line="2" column="3" selection-start-line="2" selection-start-column="3" selection-end-line="2" selection-end-column="3" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Menu.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1134">
<caret line="65" column="20" selection-start-line="65" selection-start-column="20" selection-end-line="65" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
@@ -714,10 +854,7 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
<folding>
<element signature="e#3609#3610#0" expanded="true" />
<element signature="e#3670#3671#0" expanded="true" />
</folding>
<folding />
</state>
</provider>
</entry>
@@ -757,10 +894,7 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
<folding>
<element signature="e#3609#3610#0" expanded="true" />
<element signature="e#3670#3671#0" expanded="true" />
</folding>
<folding />
</state>
</provider>
</entry>
@@ -792,10 +926,7 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="234">
<caret line="15" column="12" selection-start-line="15" selection-start-column="12" selection-end-line="15" selection-end-column="12" />
<folding>
<element signature="e#3609#3610#0" expanded="true" />
<element signature="e#3670#3671#0" expanded="true" />
</folding>
<folding />
</state>
</provider>
</entry>
@@ -827,10 +958,7 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="234">
<caret line="15" column="12" selection-start-line="15" selection-start-column="12" selection-end-line="15" selection-end-column="12" />
<folding>
<element signature="e#3609#3610#0" expanded="true" />
<element signature="e#3670#3671#0" expanded="true" />
</folding>
<folding />
</state>
</provider>
</entry>
@@ -870,10 +998,7 @@
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="720">
<caret line="42" column="35" selection-start-line="42" selection-start-column="35" selection-end-line="42" selection-end-column="35" />
<folding>
<element signature="e#3609#3610#0" expanded="true" />
<element signature="e#3670#3671#0" expanded="true" />
</folding>
<folding />
</state>
</provider>
</entry>
@@ -893,25 +1018,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Analyse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240">
<caret line="117" column="59" selection-start-line="117" selection-start-column="59" selection-end-line="117" selection-end-column="59" />
<folding>
<element signature="e#3609#3610#0" expanded="true" />
<element signature="e#3670#3671#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Menu.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1134">
<caret line="65" column="20" selection-start-line="65" selection-start-column="20" selection-end-line="65" selection-end-column="20" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Test.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="36">
@@ -920,10 +1026,26 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Menu.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="8" column="15" selection-start-line="8" selection-start-column="15" selection-end-line="8" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Analyse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="3582">
<caret line="207" column="41" selection-start-line="207" selection-start-column="41" selection-end-line="207" selection-end-column="41" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/com/structix/Main.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="15" column="30" selection-start-line="15" selection-start-column="30" selection-end-line="15" selection-end-column="30" />
<state relative-caret-position="504">
<caret line="28" column="30" selection-start-line="28" selection-start-column="30" selection-end-line="28" selection-end-column="30" />
<folding />
</state>
</provider>

View File

@@ -8,15 +8,23 @@ import java.util.Scanner;
* Created by structix on 14.05.16.
*/
/* Analyse Klasse:
* Hier wird sowohl die Datei eingelesen, als auch verarbeitet.
* Die Ergebnisse werden dann von den Methoden zurückgeliefert
*
*/
public class Analyse {
//Definition der globalen Variablen
private String inhalt = "";
private String woerterGesamt[];
private String einzelneWoerter[];
//Konstruktor des Objekts mit dem Dateipfad als Übergabewert
public Analyse(String dateipfad) {
//Inhalt der Datei wird an den globalen String inhalt übergeben
inhalt = dateilesen(dateipfad);
//Text wird direkt für die Verarbeitung angepasst
textAnpassen();
//Initialisierung der globalen Variablen
@@ -24,117 +32,180 @@ public class Analyse {
haeufigkeit();
}
//Hier wird die Datei aus einem bestimmten Dateipfad ausgelesen
private String dateilesen(String dateipfad) {
//Variablen werden definiert
Scanner datei;
String text = "";
//Der try-catch Block wird benötigt, falls die Datei nicht vorhanden ist
try {
//Scanner bekommt den Dateipfad als File übergeben
datei = new Scanner(new File(dateipfad));
//Der Inhalt wird nach dem Regulären Ausdruck
// \Z also bis zum Ende des Inputs bzw. bis zum letzten Terminator (falls vorhanden)
//eingelesen. Ein weiterer \ kommt hinzu, um die Escapesequenz für einen \ einzuleiten.
text = datei.useDelimiter("\\Z").next();
//Scanner wird geschlossen
datei.close();
} catch (FileNotFoundException ex) {
//Falls es zu einem Fehler kam, soll auf System.err eine kurze Fehlermeldung erscheinen.
ex.getLocalizedMessage();
}
//Text wird als String zurückgegeben
return text;
}
//Hier wird der Text angepasst
public void textAnpassen() {
String verarbeitung;
//Leere Zeilen werden entfernt und Zeilenumbrüche mit Leerzeichen ersetzt
verarbeitung = inhalt.replace("\n\n", "");
verarbeitung = verarbeitung.replace("\n", " ");
//Array des Textes wird mit dem Leerzeichen Delimiter erstellt
woerterGesamt = verarbeitung.split(" ");
}
//Anzahl der Wörter werden zurückgegeben, da die Länge des Arrays aller Wörter abgefragt wird
public int laenge() {
return woerterGesamt.length;
}
//Hier werden die verschiedenen Wörter im Text bestimmt
public int verschiedenWoerter() {
//Initialisierung eines leeren temporären Arrays mit der länge von allen Wörtern wird erstellt
String tempArray[] = new String[woerterGesamt.length];
boolean vorhanden;
int tempbelegt = 0;
int tempbelegt = 0; //Zähler für ein noch nicht vorhandenes Wort
//Gesamte Wörter Liste wird durchgegangen
for (int i = 0; i < woerterGesamt.length; i++) {
vorhanden = false;
vorhanden = false; //Wird vor jedem Durchlauf auf false gesetzt
//Schleife um jeden Eintrag im temporären Array mit dem woerterGesamt Array zu vergleichen
for (int z = 0; z < tempArray.length; z++) {
//Wenn der Eintrag einmal oder mehrmals vorhanden ist wird vorhanden auf true gesetzt
if (woerterGesamt[i].equals(tempArray[z])) {
vorhanden = true;
}
}
//Wenn vorhanden auf false ist, also der Eintrag im temporären Array
//noch nicht vorhanden ist, soll ein neuer Eintrag erstellt werden
if (!vorhanden) {
tempArray[tempbelegt] = woerterGesamt[i];
//Zähler wird für die richtige Position um 1 inkrementiert
tempbelegt++;
}
}
//Das Array einzelneWoerter wird mit der Länge vondem temporär Zähler initialisiert
einzelneWoerter = new String[tempbelegt];
//Hier werden alle Werte von tempArray in das einzelneWoerter Array geschrieben
for (int i = 0; i < tempbelegt; i++) {
einzelneWoerter[i] = tempArray[i];
}
//Der Rückgabewert wieviele verschiedene Wörter es gibt
return tempbelegt;
}
//Hier wird die Häufigkeit der einzelnen Wörter im Text bestimmt
public String haeufigkeit() {
//Ein leeres Integer Array für die Anzahl der einzelnenWoerter wird erstellt
int anzahl[] = new int[einzelneWoerter.length];
//Alle Einträge werden auf 0 gesetzt, damit danach hochgezählt werden kann
for (int i = 0; i < anzahl.length; i++) {
anzahl[i] = 0;
}
//Die gesamte Wörter Liste wird durchgegangen
for (int i = 0; i < woerterGesamt.length; i++) {
//Darin wird wiederum die einzelneWoerter Liste durchgegangen,
//um die Anzahl an der richtigen Stelle zu inkrementieren
for (int z = 0; z < einzelneWoerter.length; z++) {
//Vergleich von einem Eintrag in der gesamten Wörterliste mit allen Einträgen
//aus dem einzelneWoerter Array
if (woerterGesamt[i].equals(einzelneWoerter[z])) {
anzahl[z] += 1;
}
}
}
//Hier wird die Methode sortieren aufgerufen und dort das sortierte Ergebnis ausgegeben
return sortieren(einzelneWoerter, anzahl);
}
//Kompletter Text wird ausgegeben
public String textausgabe() {
return inhalt;
}
//Sortier Methode
private String sortieren(String woerter[], int anz[]) {
/**
* Diese Methode basiert auf dem Bubblesort Sortieralgorithmus.
* Dieser wurde jedoch um ein Array erweitert. Es wird nach absteigendenden Zahlen sortiert
* und in diesem Verhältnis das woerter Array mit sortiert.
* Das heißt die Anordnung der beiden Arrays ist nach dem sortieren immernoch korrekt.
*/
//Temporäre Variablen für Integer und String
String tempstring;
int tempint;
//Das komplette Array wird durchgegangen
for (int i = 1; i < woerter.length; i++) {
//Darin wird das selbe Array (selbe Länge) nochmals durchgegangen
//Allerdings bei jedem Durchgang um i weniger, da diese Einträge schon sortiert wurden
for (int z = 0; z < anz.length - i; z++) {
//Wenn Eintrag an der aktuellen Stelle kleiner wie an der nächsten Stelle ist,
//soll umsortiert (Plätze getauscht) werden
if (anz[z] < anz[z + 1]) {
//Aktueller Eintrag wird ausgelagert
tempint = anz[z];
//Aktueller Eintrag wird mit dem nächsten Eintrag ersetzt
anz[z] = anz[z + 1];
//Nächster Wert wird mit dem ausgelagerten Wert überschrieben
anz[z + 1] = tempint;
//Das selbe Verfahren wird nun mit dem String gemacht,
//da die Positionen gleich bleiben sollen
tempstring = woerter[z];
woerter[z] = woerter[z + 1];
woerter[z + 1] = tempstring;
}
}
}
//Hier werden die sortierten Einträge nacheinander ausgegeben bzw. in den String ausgabe geschrieben
String ausgabe = "";
for (int i = 0; i < anz.length; i++) {
ausgabe += woerter[i] + ": " + anz[i] + " (" + prozentsatz(anz[i], laenge()) + "%)" + "\n";
}
//Ausgabe wird zurückgeliefert
return ausgabe;
}
//Hier wird die Anzahl der Buchstaben inklusive Leerzeichen zurückgegeben
public int anzBuchstabenMLeerzeichen() {
//Mit Leerzeichen
return inhalt.length();
}
//Hier wird die Anzahl der Buchstaben ohne Leerzeichen ausgegeben
public int anzBuchstabenOLeerzeichen() {
//Ohne Leerzeichen
String temp = inhalt.replace(" ", "");
String temp = inhalt.replace(" ", ""); // Leerzeichen wird gegen "nichts" ersetzt
return temp.length();
}
//Methode zum errechnen des Prozentsatzes
private double prozentsatz(int prozentwert, int grundwert) {
return (double) prozentwert / grundwert * 100;
}
//Prozentualer Anteil der Leerzeichen
public int stats_leerzeichen() {
return (int) prozentsatz(anzBuchstabenMLeerzeichen() - anzBuchstabenOLeerzeichen(), anzBuchstabenMLeerzeichen());
}

View File

@@ -1,6 +1,18 @@
package com.structix;
/* Main:
* Diese Klasse ist für die Ausführung des gesamten Programms verantwortlich.
* Hier werden die nötigen Objekte erzeugt, um das Menü auszuführen.
*
*/
/* Funktionen:
* Einen Text aus einer Datei lesen und nach folgenden Kriterien analysieren:
* - Wörter zählen
@@ -14,15 +26,24 @@ package com.structix;
* 15.05.16: 20:41 - 21:38 Uhr
* 16.05.16: 20:47 - 21:44 Uhr
* 17.05.16: 11:59 - 12:37 Uhr
* 20.05.16: 11:18 - 12:32 Uhr
*/
public class Main {
public static void main(String[] args) {
//Menü Objekt wird erzeugt
Menu m = new Menu();
//Auskommentieren, um einen Dateipfad einzugeben
m.debug();
//m.dateipfad();
//Solange kein exit Befehl kommt, wird das Menü angezeigt.
//Es ist kein Schleifenkörper notwendig, da die Methode Hauptmenu
//schon einen Boolean Wert zurückgibt und damit bestimmt, ob die Bedingung wahr
//bleibt oder nicht
while (!m.hauptmenu());
//Nachricht vor dem Beenden des Programms
System.out.println("Auf Wiedersehen!");
}
}

View File

@@ -5,27 +5,42 @@ import java.util.Scanner;
/**
* Created by structix on 15.05.16.
*/
/* Menu Klasse:
* Diese Klasse bestimmt das Verhalten des Menüs.
* Hier werden die Funktionen hinter den Menüeinträgen bestimmt.
*/
public class Menu {
//Objekte vom Menubuilder werden erzeugt und mit den Überschriften initialisiert.
Menubuilder mbuilder = new Menubuilder("Textanalyse");
Analyse an;
Menubuilder statsmenu = new Menubuilder("Statistiken");
//Objekt der Analyse Klasse wird definiert.
//Es findet keine Deklaration statt, da dieses Objekt einen Dateipfad benötigt.
Analyse an;
//Zum testen kann dem Analyse Objekt ein fester Dateipfad mitgeliefert werden
public void debug() {
an = new Analyse("Test.txt");
}
//Hier wird ein Dateipfad abgefragt
public void dateipfad() {
System.out.println("Geben Sie einen Dateipfad an (relativ sowie absolut erlaubt): ");
Scanner eingabe = new Scanner(System.in);
//Instanz wird mit dem eingegebenen Dateipfad erstellt
an = new Analyse(eingabe.nextLine());
}
//Hier wird das Verhalten des Hauptmenüs beschrieben
public boolean hauptmenu() {
//Das Hauptmenü wird ausgeführt, solange exit nicht wahr ist
boolean exit = false;
int auswahl = 0;
//Menü wird mit Einträgen befüllt und auf das Ergebnis "gewartet"
//Die Zeichen für den Rahmen müssen auch angegeben werden
auswahl = mbuilder.menuAnzeigen(new String[]{"Anzahl der Wörter", "Anzahl der verschiedenen Wörter", "Anzahl der Buchstaben", "Statistik Menü"}, "||");
switch (auswahl) {
case 1:
@@ -39,19 +54,24 @@ public class Menu {
ausgabe("Buchstaben (ohne Leerzeichen): " + an.anzBuchstabenOLeerzeichen());
break;
case 4:
//Aufruf eines weiteren Menüs
while (!statistikmenu());
break;
default:
exit = true;
break;
break; //Nicht zwingend notwendig
}
//Boolean wird zurückgegeben
return exit;
}
//Statistikmenü
public boolean statistikmenu() {
boolean exit = false;
int auswahl = 0;
//Menü wird wieder mit Strings befüllt und der Rückgabe Wert der Variable auswahl zugeordnet
auswahl = statsmenu.menuAnzeigen(new String[]{"Enthaltene Leerzeichen", "Häufigkeit der verschiedenen Wörter"}, "||");
//Fallunterscheidung der Variable auswahl
switch (auswahl) {
case 1:
ausgabe("Prozentsatz der enthaltenen Leerzeichen: " + an.stats_leerzeichen() + "%");
@@ -61,11 +81,13 @@ public class Menu {
break;
default:
exit = true;
break;
break; //Nicht zwingend notwendig
}
//Boolean wird zurückgegeben
return exit;
}
//Methode zur einfacheren Ausgabe
private void ausgabe(String eing) {
System.out.println(eing);
}