Java, Zeichenkette suchen und bis zu einen bestimmten Zeichen herauskopieren?

3 Antworten

indexHttp = str.indexOf("http");
indexQuotes = str.indexOf('"', indexHttp+1);

indexHttp ist der Index wo das jeweilige Http steht, indexQuotes ist der Index, wo die nächstes Gänsefüßchen stehen.

Einfach einen Substring von indexHttp zu indexQuotes machen und du hast den Link.

Einfach über alle indexHttp eine Schleife machen und so kriegst du alle Links.

Woher ich das weiß:Hobby – Erfahrener Programmierer und Informatik-Student

Jetzt wird mir ein Link ausgegeben. Aber wie muss die Bedingung der while Schleife sein damit sie nicht unendlich läuft?

0
@Leonad

Index gibt -1 zurück wenn es keinen gibt. Folglich einfach eine While-Schleife solange Index >=0.

Der ganze Code würde dann ca. so aussehen (hab noch nicht getestet ob er geht) :

int indexHttp = -1;
int indexQuotes =0;
do {  
indexHttp = str.indexOf("http", indexHttp + 1); 
indexQuotes = str.indexOf('"', indexHttp)
// Substring bilden und in ein Array speichern
} while (indexHttp >= 0);
0
@MrAmazing2

Noch eine letzte Frage. Die Links werden jetzt Korrekt ausgegeben. Allerdings kommt die Fehlermeldung:

Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: -1

Hast du eine Idee wie ich die Verhindern kann?

0
@Leonad

das bilden des substrings nur machen wenn indexHttp >= 0.

Also

if(indexHttp >= 0) {
//substring bilden und speichern
}

der Fehler tritt auf weil indexOf beim allerletzten mal immer -1 zurückgibt, und davon natürlich kein Substring gebildet werden kann.

0
@MrAmazing2

Jetzt funktioniert alles. Danke für deine Hilfe und Geduld

1

Nein, ich meine Java. Ich gebe bei meinen Programm ein Link ein und es wird vom Link der HTML Code in einem String gespeichert. Von dem String möchte ich dann alle Links (http) in einen Array speichern

0

Wenn er JavaScript meint, warum würde er dann „Java“ schreiben????

Lost.

1
@MrAmazing2

Weil die Leute das hier oft genug verwechseln 😉

0
@safur

Hab ich noch nie gesehen und ich beantworte seit 2 Jahren Programmierfragen. Aber ok. xD

1
@MrAmazing2

Das glaube ich dir jetzt wirklich nicht. 🙈 Ich beantworte auch regelmäßig Entwicklerfragen.

Es wird auch VB mit VB.NET und VBA verwechselt.
Nicht schlimm! Vom Ansatz waren wir sehr ähnlich

1

Was möchtest Du wissen?