Textfile verarbeiten.

Status
Nicht offen für weitere Antworten.
A

Amicelli87

Gast
Hallo Freunde,

Ich bin Java Anfängerin und sitze an einem kleinen Programm, das ein Textfile lesen und ein bestimmtes Wort darin via Hashtable zählen, wobei Groß/Kleinschreibung (nicht nur Anfangsbuchstabe) vernachlässigt werden soll.


Ich hatte mir das so gedacht, daß ich daß Textfile einfach via filereader einlese und dann alle Vorkommnisse des Wortes via put-Methode in die Hashtabelle eintrage und am Ende via size bestimme wieviele Einträge die Hashtabelle hat, sprich wieviele Vorkomnisse dieses Wortes nun im Textfile waren.


Was ich in meiner Unwissenheit nicht bedacht habe ist, daß der filereader so wie ich ihn kenne nur einzelne chars auslesen kann. Die müsste ich dann wohl in ein chararray übertragen und dann mit ewig vielen if abfragen sicherstellen, daß auch ja alle möglichen buchstabenfolgen, egal ob groß oder klein geschrieben, die dieses wort bilden auch entsprechend in die hashtable eingetragen werden.

Meine Frage nun: Gibt es eine Möglichkeit das elegenter zu lösen? Kann man evtl ganze Strings aus einem Textfile auslesen, identifizieren und dabei groß kleinschreibung ignorieren?

Ich wäre für Tipps, Verweise auf entsprechende Java Bibliotheken/Methoden, und konkrete Hilfe gleichermaßen dankbar :)

mfg
Smartie
 
G

Gast

Gast
"Aber warum du 'ne Hashtabelle verwenden willst ist mir nicht ganz klar..." Weil die Aufgabenstellung eine Lösung via Hashtabelle verlangt so unsinnig das in diesem Fall auch ist.

:)

Danke für den link, ich mach mich gleich mal an`s Lesen.
 

Kim Stebel

Bekanntes Mitglied
Wer schreibt denn solche Aufgaben? Oder vielleicht will er/sie die verschiedenen Schreibweisen als Schlüssel?
 
A

Amicelli87

Gast
Kim Stebel hat gesagt.:
Wer schreibt denn solche Aufgaben? Oder vielleicht will er/sie die verschiedenen Schreibweisen als Schlüssel?

Sieht nicht so aus.

"Implementieren Sie ein Programm in Java, welches die Worthäufgkeiten in Texten mit
Hilfe einer Hashtabelle zahlt. Groß und Kleinschreibung sollen vernachlassigt werden,"

Ich glaube der Aufgabensteller will uns einfach nur ärgern. Ist nichts neues. So kompliziert wie möglich um irgendwie den VL-Stoff einzubinden, so unsinnig das an diesem Punkt auch sein mag.

Nochmal danke für den link, mit dem Scanner ist es in der Tat ein Klacks. ;) Dankeschön :)
 

Kim Stebel

Bekanntes Mitglied
Also für mich hört sich die Aufgabenstellung so an:
Eingabe:
"Eine dumme Eingabe, noch eine dumme Eingabe."
Ausgabe:
Hashtable..
Eine->2
dumme->2
Eingabe->2
noch->1
 
A

Amicelli87

Gast
Das Programm soll halt Textfiles verarbeiten können, und dazu muss ich erstmal brauchbare strings aus dem file ziehen können, oder?
 
A

Amicelli87

Gast
Oder habe ich da deiner Meinung nach etwas generell missverstanden?
 

Kim Stebel

Bekanntes Mitglied
Anonymous hat gesagt.:
Das Programm soll halt Textfiles verarbeiten können, und dazu muss ich erstmal brauchbare strings aus dem file ziehen können, oder?
Ja, klar...

Anonymous hat gesagt.:
Oder habe ich da deiner Meinung nach etwas generell missverstanden?
Wenn ich wüßte, wie du die Aufgabe verstanden hast(insbesondere den Teil mit der HashMap), könnte ich dazu vielleicht etwas sagen.
 
A

Amicelli87

Gast
Ich habe das so verstanden:

Textfile verarbeiten, also einzelne Wörter in Form von Strings rausziehen. Diese dann in die Hashtable eintragen und durchzählen.
Wobei ich mit Hashtables noch nie etwas gemacht habe, und jetzt garnicht weiß wie man darin spezielle Einträge zählen kann.
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Hashtable.html
Hier sehe ich jetzt zumindest keine entsprechende Methode.


Ich bin heilfroh, daß ich nicht Informatik studiere, selbst solcher Kleinkram macht mir wirklich zu schaffen :(
 

ARadauer

Top Contributor
machst eine Hashtable, key ist das wort (string) value ist die anzahl (Integer)

du ließt mit bufferd reader das textfile zeilenweise ein, splittest die zeile mit slit(" ") in einzelnen wörte.
du iterierst über die wörter

für jedes wort machst du ein get auf die hashtable
kommt null zurück, war das wort noch nicht drin, du fügst es ein mit dem wert 1 (put)
wird etwas gefunden, ist das praktisch die anzahl. du schreibst das wort wieder rein mit anzahl +1

ganz einfach und auch sinnvoll, versteh nicht, dass sich hier einige über das beispiel beschweren, ich hab dieses vorgehen sicher schon 5 mal gebraucht... artikelnummern in einer csv zahlen usw.... und hier im forum hatten wirs auch schon öfters



http://java.sun.com/j2se/1.5.0/docs/api/ kann sehr hilfreich sein
 
G

Guest

Gast
Ich fürchte ich muss noch weiter an eueren Nerven zehren... tut mir Leid

Code:
import java.io.*;
import java.util.*;
public class HashingMain 
{

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		
	String s;	
	Scanner Scan = new Scanner (new File("file.txt"));
	Hashtable<String, Integer> Hash = new Hashtable<String, Integer>();
	while (Scan.hasNext())
	{
		s = Scan.next();
		Enumeration<String> E = Hash.keys();
		while (E.hasMoreElements())
		{
			if (E.nextElement().equalsIgnoreCase(s)) s = E.nextElement();
		}
		if (Hash.get(s)== null)
			{
				Hash.put(s, 1);
			}
		Hash.put(s, Hash.get(s) + 1);	
	}
		System.out.println(Hash.toString());
	}
}
Das Problem hier. Die Werte in der Hashtabelle sind bei sämtlichen Wörtern um 1 zu hoch, woher kann das kommen?
Und dann ist da noch mein nächstes problem. Es soll ja Groß-Kleinschreibung igrnoriert werden. D.h. bei jedem eingescannten Wort müsste ich eigtl sämtliche Keys der Hashtabelle mittels equalsIgnoreCase() abgleichen.
Nach dem Lesen von
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Hashtable.html
und dem
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Enumeration.html
Dachte ich, daß das via Enumerator(habe ich noch nie benutzt) funktionieren würde.
Aber seit ich den implementiert habe bekomme ich diesen Fehler hier sobald ein Wort mehr als 1 mal auftaucht.
Exception in thread "main" java.util.NoSuchElementException: Hashtable Enumerator
at java.util.Hashtable$Enumerator.nextElement(Unknown Source)
at HashingMain.main(HashingMain.java:21)


:((
 
A

Amicelli87

Gast
Gast

Ich sollte mir hier wohl doch mal einen Account machen :)
 
A

Amicelli87

Gast
Ich habe das Enumerator-Problem mit toLowerCase umgangen. Sämtliche Worte werden jetzt erst normiert bevor sie abgeglichen werden. :)
 
A

Amicelli87

Gast
Ok mein Programm tut jetzt was es tun sollte. Eine verdammt schwere Geburt für ein eigtl so simples Programm.

Tut mir Leid, daß ich eure Nerven so strapaziert habe und nochmals vielen Dank für eure Hilfe :)

mfg
Amicelli
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Textfile mit StringTokenizer einlesen und sortiert ausgeben Java Basics - Anfänger-Themen 8
F Textfile auslesen und durchsuchen Java Basics - Anfänger-Themen 13
N User Eingabe mit Zeile aus TextFile vergleichen Java Basics - Anfänger-Themen 13
D Textfile lesen/schreiben abhängig vom inhalt Java Basics - Anfänger-Themen 6
A Textfile wird nur unvollständig eingelesen Java Basics - Anfänger-Themen 4
M Import Unicode Textfile Java Basics - Anfänger-Themen 10
L Textfile mit BufferReader einlesen Java Basics - Anfänger-Themen 4
M textfile mit java auslesen Java Basics - Anfänger-Themen 4
mwildam Textfile lesen und schreiben - so viele Möglichkeiten Java Basics - Anfänger-Themen 5
M if-else-endif in Textfile erkenne Java Basics - Anfänger-Themen 8
M in Textfile Strukturen erkennen Java Basics - Anfänger-Themen 5
M Textfile durchlaufen und ersetzen Java Basics - Anfänger-Themen 2
M in Textfile Textphrase ersetzen Java Basics - Anfänger-Themen 13
P Textfile einlesen Java Basics - Anfänger-Themen 8
S Ringbuffer-Speicher mit einem Textfile Java Basics - Anfänger-Themen 2
H Mit JSP in ein Textfile schreiben Java Basics - Anfänger-Themen 2
H Header von Textfile bearbeiten Java Basics - Anfänger-Themen 14
G Stringmaipulation, Textfile einelsen und Suchen und Ersetzen Java Basics - Anfänger-Themen 12
M Textfile in einer JTextArea anzeigen Java Basics - Anfänger-Themen 3
R Textfile vs Serialized Objects Java Basics - Anfänger-Themen 4
A Abspeichern von werten in einer textfile. Java Basics - Anfänger-Themen 2
G wie 'tabs' und 'zeilenumbruch' in textfile einbauen? Java Basics - Anfänger-Themen 5
G Textfile bearbeiten und speichern Java Basics - Anfänger-Themen 3
T 3D Objekte verarbeiten Java Basics - Anfänger-Themen 2
A CSV-Datei Verarbeiten Java Basics - Anfänger-Themen 8
D Events verarbeiten Java Basics - Anfänger-Themen 1
J CSV-Datei verarbeiten Java Basics - Anfänger-Themen 27
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
S Datein auslesen und verarbeiten Java Basics - Anfänger-Themen 1
R txt Einlesen und Verarbeiten Java Basics - Anfänger-Themen 15
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
G csv datei verarbeiten Java Basics - Anfänger-Themen 18
Z Textdateien einlesen und verarbeiten Java Basics - Anfänger-Themen 3
V Excel Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 4
J CSV Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 10
A Auslesen, verarbeiten und ausgeben Java Basics - Anfänger-Themen 22
B große jpeg verarbeiten Java Basics - Anfänger-Themen 8
H Daten einlesen und verarbeiten Java Basics - Anfänger-Themen 4
M Datentypen Strings nach Muster auslesen und verarbeiten Java Basics - Anfänger-Themen 5
D CSV Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 23
N Fragen zu String durchsuchen und verarbeiten Java Basics - Anfänger-Themen 23
D Eingelesene Datei verarbeiten Java Basics - Anfänger-Themen 11
R Daten aus Datenbank lesen, verarbeiten und schreiben. Java Basics - Anfänger-Themen 1
C Problem mit Lesen und Speichern und Verarbeiten von großen Text Dateien Java Basics - Anfänger-Themen 5
G Gleichzeitiges Verarbeiten von Variablen 2er Obj. selber Kl. Java Basics - Anfänger-Themen 5
S utf-8 codierte Strings verarbeiten Java Basics - Anfänger-Themen 2
X mehrere Dateien lesen/verarbeiten Java Basics - Anfänger-Themen 3
G setValueAt Rückgabewert verarbeiten? Java Basics - Anfänger-Themen 12
M Letzte Zeille einer Datei verarbeiten Java Basics - Anfänger-Themen 3
T longs binär verarbeiten Java Basics - Anfänger-Themen 4
G dateien verarbeiten Java Basics - Anfänger-Themen 7
zilti String verarbeiten Java Basics - Anfänger-Themen 4
M HTML Seite die Daten in JavaApplet dynamisch verarbeiten Java Basics - Anfänger-Themen 2
G Gleiche Aktionen verarbeiten (aber nur einmal Code)? Java Basics - Anfänger-Themen 2
T Bei Struts Beans updaten ohne ein Request zu verarbeiten Java Basics - Anfänger-Themen 4
M Daten eingeben und verarbeiten Java Basics - Anfänger-Themen 8
C Html-Seite aus dem Internet verarbeiten Java Basics - Anfänger-Themen 10
G Dateiliste verarbeiten Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben