PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (java) problem mit einem string



micromotion
25-10-2003, 16:36
hallo zusammen

ich möchte aus einem String der 25 zeilen enthält nach einem bestimmten merkmal suchen lassen und mir die gesamte zeile nach dem merkmal ausgeben

ich habe es bisher auf die irrwitzigsten arten versucht doch leider beisse ich immer wieder auf die tastatur

habt ihr eine lösung bzw ansätze wie ich meinen nächsten zahnarztbesuch spare??????

gruss
micromotion

RapidMax
25-10-2003, 16:49
Suche das Merkmal im gesammten String. Bewege den ersten Index zurück zum letzten Zeilenumbruch und den zweiten Index vor zum nächsten. Liefere den Substring zwischen den beiden Idices zurück.

Gruss, Andy

peschmae
25-10-2003, 19:19
oder benutz die Regexp-Api. Die gibts aber erst ab Java 1.4, bei älteren noch nicht (alternativ ne externe Lib, die das macht).

Damit sollts auch gehen.

Für detailiertere Hilfe brauche ich (und die andern auch) aber auch detailiertere Infos (wie sieht ein solcher String aus, wie sieht das Merkmal aus, etc)

MfG Peschmä

comrad
26-10-2003, 01:41
Du brauchst:

String mystring = "balbalbalbalalsdasldaslkdjaslkdjalskdjaslkjdask";
String neuerstring = "";
String.lastIndexOf(String str);
String.length();
int lastindex = 0;


Du suchst nun nach dem letzten Vorkommen des Suchstrings.


lastindex = mystring.lastIndexOf("suchwort");
neuerstring = mystring.subString(lastindex, mystring.length());


nun steh im "neuerstring" der rest nach dem suchwort drin.

comrad

micromotion
29-10-2003, 10:30
:confused: hä? das ist alles im moment zu viel für mich

ich glaube ich habe meine frage falsch gestellt vielleicht vereinfacht mein prog das

public class stringauslesen {

public static void main(String[] args) {

String header = null;
try {
FileReader freader = new FileReader(args[0]);
BufferedReader in = new BufferedReader(freader);
StringBuffer lesepuffer = new StringBuffer();

for(int i=0; i <= 25;i++){
header = in.readLine();
lesepuffer.append(header + "\n");
freader.close();
header = new String(lesepuffer);}

}catch(Exception eve){System.out.println("error1");
System.exit(1);}

System.out.println(header);

String wert = null;
String s ="*test";


try {
Properties fileProp = new Properties();
FileInputStream stream = new FileInputStream(header);
fileProp.load(stream);
wert = fileProp.getProperty(s);

System.out.println(wert);

}
catch(Exception eve){
System.out.println("error2");
System.exit(1);
}

}

}

mein problem befindet sich in der unteren hälfte und zwar funktioniert die try anwendung net
mein vorhaben liegt darin per getProperty einen wert auszulesen
funktioniert aber leider nicht
könnt ihr mir helfen bei der lösung

danke

peschmae
29-10-2003, 12:09
äh, sorry, aber ich versteh den Code auch so nicht ganz :(

Wieso schliesst du den Stream mit .close() in der For-Schleife?

Unten würd ich bei (übrigens solltest du auch code-tags brauchen)


catch (Exception eve) {
System.out.println("exception2 "+eve);
System.exit(1);
}


schreiben - dann gibt er nämlich noch n bisserl Zeugs zur Exception aus. (z.B. was für ne exception und wo)

MfG Peschmä

micromotion
29-10-2003, 13:12
wieso weshalb warum??? weiss ich auch noch nicht......einiges hab ich mit cut&paste zusammengetragen........

ich möchte gerne aus einem 25 zeiligen string welches so ausehen könnte

name=fgfgfd
vorname=dfgdfg
strasse=dgezfdb
wohnort=dfgdgf
land=dfgdgd
undsoweiter=dfgd dfg

z.b. den vornamen extrahieren
bis dato dachte ich es würde mit get.Property funktionieren tut es vielleicht auch nur ich weiss nicht wie!!!!!

vielleicht kennt ihr die lösung oder seht den fehler???

danke

peschmae
29-10-2003, 18:01
also alles in einem String, aber durch \n getrennt?

MfG Peschmä