Bestimmte Stellen aus .txt Datei auslesen

Vitamin

Mitglied
Hallo Zusammen,

Bin gerade dabei für mich ein kleines Programm zu programmieren. Ziel ist es, aus einer Textdatei bestimmte Stellen auszulesen. In der Textdatei sind alle Wörter zusammenhängend geschrieben, das heißt ohne leerstellen und mit wenigen Absätzen. Der Text ist durchgehend.

Beispiel:
dies,ist,ein_Beispiel:"yfwslrejwkrjlkewjlskjrlejrsklrjslekrj",um,das,ganze"zu,verdeutlichen".}


Habe die .txt Datei jetzt mit einem Bufferedreader eingelesen

Java:
BufferedReader in = new BufferedReader(new FileReader("D:\\Datenbank.txt"));
		String zeile = null;
		while ((zeile = in.readLine()) != null) {


Möchte nun ab einem bestimmten Wort und bis zu einem bestimmten Zeichen den Text auslesen. Das Wort kommt aber öfters in der Texdatei vor!

Habe es nun mit einem indexof hinbekommen, die Stelle des Wortes ausfindig zu machen

Java:
int start = zeile.indexOf("ein_Beispiel:\"");
        start=start+13;

Wie bekomme ich es nun hin, bis zum nächsten Ausführungszeichen auszulesen?
Habe schon ein lastindexof angelegt.
Mit substring lasse ich dann den Textausschnitt ausgeben.

Java:
int ende = zeile.lastIndexOf("\"");
System.out.println(zeile.substring(start, ende));}

Funktioniert so aber nicht, der gibt mir dann immer den kompletten Text aus. Sobald ich ein zweites Zeichen eingebe und es somit eindeutig wird, klappt es. Dies ist aber nicht gewünscht, denn ich möchte ab dem ersten angegebenen Wort bis zum nächsten Ausführungszeichen ausgeben lassen.


Es soll immer ab dem Wort ein_Beispiel:" angefangen werden einzulesen und das immer bis zum nächsten Ausführungszeichen. Dann wieder ab dem Wort ein_Beispiel:" und bis zum nächsten Ausführungszeichen.....und so weiter....


Hoffe das mir hier jemand weiterhelfen kann.

Vielen Dank!
 
G

Gast2

Gast
lastIndexOf gibt dir (wieder name schon sagt) das letzte vorkommen des zeichens. aber das willst du in deinem fall ja gar nicht.
Du kannst indexOf einen startIndex mitgeben:
Java:
int ende = zeile.indexOf("\"", start);
 

Vitamin

Mitglied
Ah Super! So funktioniert es! Vielen Dank für die schnelle Antwort.

Wie lasse ich denn jetzt das gleiche Wort an anderer Stelle finden? Wie schon geschrieben, es ist ein Wort das mehrmals vorkommt und ich möchte immer ab dort beginnen.
Wie oft das Wort vorkommt, ist erstmal unbekannt.
 
G

Gast2

Gast
genauso wie du nach nem " ab einer bestimmten Stelle suchst ;)
Du fängst zuerst bei 0 an zu suchen, beim nächsten mal fängst du an der Stelle an zu suchen an der das Wort stand, usw.
Bis du schließlich -1 zurückbekommst, es also keinen weiteren Fund gibt. Das lässt sich prima in einer Schleife lösen.
 

RySa

Bekanntes Mitglied
Versuche das:
Java:
Pattern pattern = Pattern.compile("ein_Beispiel:\".+\"");
Matcher matcher = pattern.matcher(zeile);

ArrayList<String> beispiele = new ArrayList<String>();
while (matcher.find()){
beispiele.add(matcher.group().replace("ein_Beispiel:" , "").replaceAll("\"" , ""));
}

Damit wirst du in der ArrayList nur die Texte innerhalb von den " ..... " hinter dem ein_Beispiel: haben :)
 

Vitamin

Mitglied
Ich habe das jetzt mal von dir versucht RySa, auch mit dem Beispielsatz. Bekomme dann immer folgendes Ergebnis:

[yfwslrejwkrjlkewjlskjrlejrsklrjslekrj,um,das,ganzezu,verdeutlichen]

Trotzdem Danke!

genauso wie du nach nem " ab einer bestimmten Stelle suchst
Du fängst zuerst bei 0 an zu suchen, beim nächsten mal fängst du an der Stelle an zu suchen an der das Wort stand, usw.
Bis du schließlich -1 zurückbekommst, es also keinen weiteren Fund gibt. Das lässt sich prima in einer Schleife lösen.

Ich weiß nicht wie ich das mit der Schleife lösen kann. Vielleicht kann mir da noch mal jemand helfen?
 

RySa

Bekanntes Mitglied
Dann habe ich dich etwas falsch verstanden. Ich dachte nach dem ein_Beispiel: folgt nur eine Zeichenkette eingeschlossen von "...". Dann mein bespiel nochmal verbessert:
Java:
	public static void main(String args[]){
		String zeile = "dies,ist,ein_Beispiel:\"yfwslrejwkrjlkewjlskjrlejrsklrjslekrj\",um,das,ganze\"zu,verdeutlichen\".}";
		Pattern pattern1 = Pattern.compile("ein_Beispiel:\".+\"");
		Pattern pattern2 = Pattern.compile("\"[.[^\"]]+\"");
		Matcher matcher = pattern1.matcher(zeile);
		 
		ArrayList<String> temp = new ArrayList<String>();
		ArrayList<String> beispiele = new ArrayList<String>();
		while (matcher.find()){
		temp.add(matcher.group().replace("ein_Beispiel:" , ""));
		}
		
		for(String beispiel: temp){
			matcher = pattern2.matcher(beispiel);
			while(matcher.find()){
				beispiele.add(matcher.group().replaceAll("\"", ""));
			}
		}
		
		for(String beispiel: beispiele){
			System.out.println(beispiel);
		}
	}

Mag vielleicht bisschen umständlich sein, erfüllt aber seinen Zweck :)
 

Vitamin

Mitglied
Dabei bekomme ich folgendes ausgegeben:

yfwslrejwkrjlkewjlskjrlejrsklrjslekrj
zu,verdeutlichen


zu,verdeutlichen darf nicht mehr mit ausgegeben werden. Die Schwierigkeit besteht aber auch darin, dass ein_Beispiel: öfters vorkommt.

Ich möchte immer die Zeichen in den Anführungsstrichen nach dem gesuchten Wort haben.

Beispiel:

dies,ist,ein_Beispiel:"yfwslrejwkrjlkewjlskjrlejrsklrjslekrj\",um,das,ganze\"zu,verdeutlichen\".}"und:geht,hier"noch"weiter",bis_das,Wort,wieder,erscheint,ein_Beispiel:"aldjfkadfjahghriuzjhioatg"und:so,weiter
,uns,so,fort,ein_Beispiel:"ifeijortrjgoirjaegopigj":{}


Ich möchte nun folgendes aus dem Text filtern, habe es auch fett markiert:

yfwslrejwkrjlkewjlskjrlejrsklrjslekrj\
aldjfkadfjahghriuzjhioatg
ifeijortrjgoirjaegopigj

Hoffe das es nun ein wenig verständlicher ist

Danke für deine Mühe RySa
 
G

Gast2

Gast
Java:
		String s = "dies,ist,ein_Beispiel:\"yfwslrejwkrjlkewjlskjrlejrsklrjslekrj\",um,das,ganze\"zu,verdeutlichen\".}\"und:geht,hier\"noch\"weiter\",bis_das,Wort,wieder,erscheint,ein_Beispiel:\"aldjfkadfjahghriuzjhioatg\"und:so,weiter,uns,so,fort,ein_Beispiel:\"ifeijortrjgoirjaegopigj\":{}";
		
		String searchString = "ein_Beispiel:\"";
		int start = 0;
		int pos = 0;
		
		while ((pos = s.indexOf(searchString, start)) != -1) {
			int end = s.indexOf("\"", pos + searchString.length());
			
			String sub = s.substring(pos + searchString.length(), end);
			System.out.println(sub);
			
			start = end;
		}
 

RySa

Bekanntes Mitglied
Konntest auch direkt sagen was du genau von dem String haben willst :). Ich dachte alles das hinter ein_Beispiel in "..." eingeschlossen ist, und da waren es 2 Zeichenketten. Dann ist das ganze noch einfacher. :
Java:
	public static void main(String args[]){
		String zeile = "dies,ist,ein_Beispiel:\"yfwslrejwkrjlkewjlskjrlejrsklrjslekrj\",um,das,ganze\"zu,verdeutlichen\".}";
		Pattern pattern = Pattern.compile("ein_Beispiel:\"[.[^\"]]+\"");
		Matcher matcher = pattern.matcher(zeile);
		 
		ArrayList<String> beispiele = new ArrayList<String>();
		
		while (matcher.find()){
			beispiele.add(matcher.group().replace("ein_Beispiel:" , "").replaceAll("\"",""));
		}
		
		for (String beispiel: beispiele){
			System.out.println(beispiel);
		}
	}
}
:)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
R Bestimmte Stellen eines BigInteger Java Basics - Anfänger-Themen 7
S Wie runden man noch mal auf bestimmte stellen? Java Basics - Anfänger-Themen 8
B Alle Zahlen finden, die 3 bestimmte Ziffern enthalten? Java Basics - Anfänger-Themen 9
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
Cassy3 Binäre Bäume Rekursiv durchlaufen und bestimmte Elemente Zählen Java Basics - Anfänger-Themen 6
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
HighLife Bestimmte Werte aus Array zählen Java Basics - Anfänger-Themen 15
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
B Nur eine bestimmte Anzahl an Arrays ausgeben Java Basics - Anfänger-Themen 9
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
B Von Array nur eine bestimmte Anzahl bekommen Java Basics - Anfänger-Themen 3
L Nur Bestimmte Werte aus einem Array in ein anderes Speichern Java Basics - Anfänger-Themen 11
B Denkanstoß benötigt: Emails an bestimmte Emailadresse schicken Java Basics - Anfänger-Themen 6
U Mehrfacheingabe auf bestimmte Parameter prüfen Java Basics - Anfänger-Themen 8
L String auf bestimmte zeichen untersuchen Java Basics - Anfänger-Themen 9
L Bestimmte Werte eines Arrays ausgeben. Java Basics - Anfänger-Themen 3
P Input/Output Bestimmte Anzahl von Werten in einem Array an Methode übergeben Java Basics - Anfänger-Themen 2
Henri Bestimmte Werte eine XML-Datei ausgeben. Java Basics - Anfänger-Themen 8
M ComboBox bestimmte Elemente disablen/ausgrauen Java Basics - Anfänger-Themen 3
S JButton soll für bestimmte Zeit verschwinden Java Basics - Anfänger-Themen 5
E Datei einlesen und bestimmte Wörter ausgeben Java Basics - Anfänger-Themen 2
A Threads Threads bestimmte Aufgaben zuweisen... Java Basics - Anfänger-Themen 3
D Input/Output Buchstaben als bestimmte Zahl erkennen Java Basics - Anfänger-Themen 4
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
N Bestimmte Zeichen eines Strings umwandeln Java Basics - Anfänger-Themen 4
K Eine bestimmte Zeit, eine Schleife laufen lassen. Java Basics - Anfänger-Themen 4
A CSV datei eine Bestimmte Zeile ansprechen Java Basics - Anfänger-Themen 1
W char-Array auf bestimmte Zeichen prüfen Java Basics - Anfänger-Themen 10
C Array kopieren und nur bestimmte Werte speichern Java Basics - Anfänger-Themen 6
D Bestimmte Werte von Objekten aus einer ArrayList in eine andere ArrayList kopieren Java Basics - Anfänger-Themen 14
N Bestimmte Inhalte aus Datei lesen Java Basics - Anfänger-Themen 11
Ananaskirsche Input/Output Bestimmte Zeile aus Datei einlesen Java Basics - Anfänger-Themen 4
B Best Practice Bestimmte Zahl auslesen und in Variable speichern Java Basics - Anfänger-Themen 3
N Bestimmte Zeile aus einer Datei auslesen Java Basics - Anfänger-Themen 10
I Int Array, Zahl an bestimmte position setzten Java Basics - Anfänger-Themen 2
C [Bukkit Plugin] Blöcke eine bestimmte route entlang fliegen Java Basics - Anfänger-Themen 3
A Button in eine bestimmte Spalte platzieren Java Basics - Anfänger-Themen 4
D Bestimmte Zeile aus TXT Datei ausgeben Java Basics - Anfänger-Themen 4
A Eine Datei Lesen und bestimmte Position überschreiben Java Basics - Anfänger-Themen 2
M Bestimmte Zeichen auslesen Java Basics - Anfänger-Themen 2
G bestimmte dateiendungen in jtree rausfiltern Java Basics - Anfänger-Themen 7
W bestimmte Objekte in ArrayList auslesen Java Basics - Anfänger-Themen 8
G JTextArea: nur bestimmte Zeilen anders formatieren Java Basics - Anfänger-Themen 7
B Input/Output bestimmte Zeilen in .txt Dateinen überschreiben Java Basics - Anfänger-Themen 20
J Bestimmte Anzahl Zeichen aneinander fügen Java Basics - Anfänger-Themen 9
C Bestimmte Informationen von Webseite suchen Java Basics - Anfänger-Themen 13
B Nur bestimmte Klasse ausführen Java Basics - Anfänger-Themen 6
Kenan89 Bestimmte Zeile in txt-Datei ersetzen Java Basics - Anfänger-Themen 4
D BufferedInputStream nur bestimmte Zeichen Java Basics - Anfänger-Themen 11
D Input/Output bestimmte Zeile auslesen Java Basics - Anfänger-Themen 3
B Bestimmte Ziffer Java Basics - Anfänger-Themen 27
B Input/Output In Datei an eine bestimmte Stelle schreiben Java Basics - Anfänger-Themen 37
S Bestimmte Objekte aus Collections anwählen/herausbekommen Java Basics - Anfänger-Themen 8
I Bestimmte Objekte einer Liste hinzufügen Java Basics - Anfänger-Themen 16
S Collections Aus Set<Object> bestimmte Typen entfernen Java Basics - Anfänger-Themen 3
S Bestimmte Methode von unbestimmter Datei Java Basics - Anfänger-Themen 6
B bestimmte klammern im string ersetzten Java Basics - Anfänger-Themen 17
Binary.Coder JTable bzw. Tabelle in bestimmte Form überführen Java Basics - Anfänger-Themen 5
B Bestimmte Werte aus einem String entnehmen Java Basics - Anfänger-Themen 3
0 Grafik eine bestimmte Strecke laufen lassen Java Basics - Anfänger-Themen 6
X im Verzeichnissbaum recursiv nur bestimmte Dateien finden Java Basics - Anfänger-Themen 7
M Aus String bestimmte Inhalte auslesen Java Basics - Anfänger-Themen 8
M Reaktion auf bestimmte Zeit Java Basics - Anfänger-Themen 2
2 Bestimmte Anzahl von Bytes lesen und als string ausgeben? Java Basics - Anfänger-Themen 3
N Bestimmte Zeichen aus Strings zählen Java Basics - Anfänger-Themen 11
P Bestimmte Zeilen einer Datei ermitteln ? Java Basics - Anfänger-Themen 30
StrikeTom Bestimmte stelle in string herausfiltern Java Basics - Anfänger-Themen 7
M Float auf bestimmte Nachkommazahl runden Java Basics - Anfänger-Themen 3
E Bild eine bestimmte Anzahl blinken lassen Java Basics - Anfänger-Themen 3
B array bestimmte summe berechnen Java Basics - Anfänger-Themen 4
Luk10 Zufallszahl "ohne" eine bestimmte Zahl(en) Java Basics - Anfänger-Themen 8
S OOP Wie bei Spiel "17+4" eine Karte an bestimmte Position hinzufügen Java Basics - Anfänger-Themen 13
B OOP String auf bestimmte Zeichen abfragen Java Basics - Anfänger-Themen 4
S Bestimmte Elemente einer ArrayList löschen Java Basics - Anfänger-Themen 3
S Double bis bestimmte Nachkommzahl vergleichen (ohne zusätzliche Libs) Java Basics - Anfänger-Themen 12
Ollek Bestimmte Zeilen aus einer HTML Datei lesen Java Basics - Anfänger-Themen 8
N Text an bestimmte Stelle eines Dokuments schreiben Java Basics - Anfänger-Themen 6
G Bestimmte Zeile aus CSV ausgeben Java Basics - Anfänger-Themen 14
Assassin Nur bestimmte Daten aus txt auslesen... Java Basics - Anfänger-Themen 12
Developer_X Durch int Bestimmte Zeile überschreiben Java Basics - Anfänger-Themen 16
Developer_X Bestimmte Zeile aus TextDocument lesen Java Basics - Anfänger-Themen 2
V Nur bestimmte Werte zulassen Java Basics - Anfänger-Themen 2
M Bestimmte zeile aus .txt einlesen Java Basics - Anfänger-Themen 6
Q Nach Stringvorgabe bestimmte funktionen ausführen Java Basics - Anfänger-Themen 3
G Bestimmte Ebene eines Baumes rekursiv ausgeben Java Basics - Anfänger-Themen 49
I bestimmte Zahlen markieren.helppp. Java Basics - Anfänger-Themen 17
G Bestimmte Position im array auslesen Java Basics - Anfänger-Themen 8
H bestimmte objekte in ArrayList löschen? Java Basics - Anfänger-Themen 7
P Hilfe für JComboBox, bmp einbinden/bestimmte punkte auf bmp Java Basics - Anfänger-Themen 3
M bestimmte Zeichen in String eliminieren Java Basics - Anfänger-Themen 2
T Bestimmte Zeile aus einer .txt-Datei auslesen? Java Basics - Anfänger-Themen 10
S Bestimmte Anzahl an nummern auslesen Java Basics - Anfänger-Themen 4
K bestimmte Dateien aus Ordner verschieben Java Basics - Anfänger-Themen 5
F Bestimmte Werte nicht beachten Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben