Problem bei Vectoren

Blind Guardian

Grünschnabel
Hi Leute,

Habe ein kleines Problemchen...und zwar liest ein Programm eine Datei zeilenweise aus...jede Zeile kommt als String in ein Element eines Vectors...

Dann durchsuche ich den Vectro nach verschiedenen Strings...(irgendwelche Marken)

Er findet die Strings und gibt mir die jeweilige Zeile bzw das Element aus...

Kann man es irgendwie anstellen, dass er die Zeilen, wo er diese Marke findet in extra Variablen speichert...

Denn es soll dann noch die kompletten Zeilen zwischen den Marken gelöscht werden...bzw ausgeschnitten werden...

Soll heissen, wenn ich eine Textdatei habe...

z.B.:
Gestern war
schönes Wetter,
weil die
Sonne schien
und es
nicht geregnet
hat.

Als Marke nehmen wir mal Wetter und geregnet...

Also gibt er mir Zeile 2 und Zeile 6 aus. Ich würde nun wollen, dass er die Zeilen 2-6 aus der entfernt und die übrig gebliebenen Zeilen in einer Datei speichert...

Mein Code bisher

Code:
import java.io.*;
import java.util.Vector;
public class LineNumber
{
  public static void main( String args[] )
  {
	try
	{
	  Reader fr = new FileReader( "D:\\home\\geißler\\Java\\test.txt" );
	  LineNumberReader f = new LineNumberReader( fr );
	  Vector vector = new Vector();
	  Vector vector2 = new Vector();
	  String line = "";
	  while ((line=f.readLine()) != null)
	  
	   vector.addElement(line);
   vector.size();
   
   for (int i=0;i<vector.size();i++)
   { 
	String temp=(String)vector.elementAt(i);
	if (temp.indexOf("Nur BMR")>0)
	{
	 vector2.addElement(i+temp);
	 System.out.println(i+temp);
	}
	else;
   }
	
	  f.close(); //Datei schliessen
	}
	catch ( IOException e ) 
	{
	  System.out.println( "Fehler beim Lesen der Datei" );
	}
  }
}

Mein Problem liegt nur darin, wie ich auf die Zeilennummer komme wo die Marke drin ist, damit ich den Text zwischen den beiden Marken löschen kann...

-Danke für die Hilfe- Danilo
 
Hi,
entweder Du legst eine neue Datenklasse an, die als Variablen die Zeilennummer und den String aufnimmt, und fügst Objekte davon in die Vectoren, oder Du benutzt eine HashMap mit der Zeilennummer (Integer, gewrapped) als Key und dem String als Value.
 
Brauchst du die Zeilen nummern? Oder wieso speicherst du den Text nicht in einem Stringbuffer? Dann kannst du mit indexOf und substring den String bearbeiten und ausschneiden was du willst.

Grüsse TrueSun
 
Zurück