View Full Version : [Runde 4] - indexOf??
hey!
versuch gerade aus einem String einen substring zu erzeugen und bin dabei auf indexOf gestossen... nur versteh ichs net ganz... glaub auch das indexOf nur mit character funktioniert... wenn ja bräucht ich eine Methode um das ganze für Strings zu verwenden...
hab das schöne html parser bsp und will jetzt einen String der so aussieht
....<TITLE> bla bla bla </TITLE> .....
herausschneiden und ein einem substring speichern....
also muss ich "ihm" sagen:
alles zwischen <TITLE> und </TITLE> = substring1 oder so...
hat vielleicht jemand eine idee??
lg,
for (int i=0; i<eingabe.length(); i++) {
if (eingabe.charAt(i)=='>')
int j = i; // j hat nun den Index des ">" Zeichens
if (eingabe.charAt(i)=='<') // wenn '<' gefunden wurde -> Tag beendet
{
k = i; // k hat nun den Index des "<" Zeichns
String sub = eingabe.substring(j+1,k); } }Das ist ein Auszug aus meinem Beispiel der 4. Runde. Da musste ich Ausdrücke innerhalb von Klammern herauslesen. Der String sub enthält nach dem Durchlaufen von beispielsweise <TITLE>hallo</TITLE> den String "hallo". Denke mir, das könnte dir helfen...
mhh.. naja... dein Ansatz ist nicht so schlecht... NUR:
das sub gibt mir ja nur den String zurück der zwischen "<" und ">" steht...
ich bräuchte aber eine Stringfolge zwischen zwei verschiedenen Strings (z.B. <TITLE> und </TITLE> oder <HEAD> und </HEAD>)
wenn ich alles zwischen "<" und ">" haben wollen würde, könnte ich ja split oder den StringTokenizer verwenden...
oder hab ich da was falsch verstanden :confused:
lg,
wie wäre es mit einer RegEx (http://java.sun.com/docs/books/tutorial/extra/regex/index.html) ?
String html = "...<head><title>blabla</title></head>...";
/*das muster, das gesucht werden soll.
Runde klammern umschliessen eine 'gruppe' von zeichen.*/
java.util.regex.Pattern (http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.html) pattern =
java.util.regex.Pattern.compile("\\<title\\>(.*)\\</title\\>");
/*verknüpfe das muster mit dem text*/
java.util.regex.Matcher (http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Matcher.html) matcher = pattern.matcher(html);
/*suche nach vorkommen vom muster im text*/
matcher.find();
/*gib die erste gruppe (in diesem Fall gibt es nur eine) als String zurück*/
String title = matcher.group(1);
RegEx?? Schaut mich guad an ;)
Danke für den Tipp... werd mir das mal reinziehen... Merci
lg,
Punkrocker
04-01-2005, 14:20
yup. hab das selbe Beispiel und hab auch sehr viel mit regex herumgewerkt.
regex hab ich selber nicht gekannt..
mein code von oben gibt dir aber nicht den String zurück der zwischen < und > steht sondern den, der zwischen > und < steht. da ist ein kleiner aber feiner unterschied!
..regex hab ich selber nicht gekannt..
mein code von oben gibt dir aber nicht den String zurück der zwischen < und > steht sondern den, der zwischen > und < steht. da ist ein kleiner aber feiner unterschied! nagut gewonnen... ;)
nur könnte ja zwischen > und < noch eine spitze klammer kommen die eigentlich als "text" gedacht ist... das würde das ganze über den haufen schmeissen... oder? hab leider wenig zeit im moment sonst würd ich das selber alles durchprobieren...
..hab auch sehr viel mit regex herumgewerkt... und hauts damit hin mit regex?? bin grad am basteln... :rolleyes: das bsp ist aber eher eine mühsame gschicht....
lg,
nur könnte ja zwischen > und < noch eine spitze klammer kommen die eigentlich als "text" gedacht ist... das würde das ganze über den haufen schmeissen!Ok der Punkt geht an dich! Verdammte Sonderfälle....:coolgrim:
vBulletin® v3.7.1, Copyright ©2000-2009, Jelsoft Enterprises Ltd.