Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo Community,
ich Entschuldige mich schon mal vorher falls es das Problem hier schon mal gab, aber ich wusste absolut nicht unter was ich suchen sollte.
Mein Problem ist folgendes. Ich lese eine Text-Datei aus. Und Irgendwann kommt in dieser Text-Datei eine Zeile welche folgenden Teil enthält: "{@h [noparse]http://www.google.de[/noparse] Hier ist ein Link zu Google.@}"
Nun möchte ich das er mir nur die Adresse ausliest, also "http:\\www.google.de". Dabei kann es aber vorkommen, das die Adresse entweder eine Internetseite ist oder eine Pfad angabe zu einem bestimmten Dokument. Ich hoffe jemand kann mir helfen.
Gruß Bonsai
P.S. Anstelle des verlinkten Google, sollte eigentlich die Adresse stehen -.-
also ich würde den String, den ich auslese dann jedes mal checken lassen, ob er http: findet und dann von dem http: bis zum nächsten "Leerzeichen" die Adresse lesen lassen
Java:
String test="hallot [url=http://www.google.de]Google[/url] 444444";
int stelle =test.indexOf("http:");
if(stelle>=0){
int stelle2=test.indexOf(" ", stelle);
System.out.println(test.substring(stelle, stelle2));
}
Syso is dann "http://www.google.de"
ignoriere das [url = ...] [/url] das formatiert er da rein bkeomme das gerade net weg
Wie genau liest du die denn aus? Schick doch mal ein wenig Code uns sag was du schon versucht hast.
So ganz allgemein gesagt:
Zeile aufsplitten in String[] und dann den String suchen der http entält ...
also ich würde den String, den ich auslese dann jedes mal checken lassen, ob er http: findet und dann von dem http: bis zum nächsten "Leerzeichen" die Adresse lesen lassen
Java:
String test="hallot [url=http://www.google.de]Google[/url] 444444";
int stelle =test.indexOf("http:");
if(stelle>=0){
int stelle2=test.indexOf(" ", stelle);
System.out.println(test.substring(stelle, stelle2));
}
Syso is dann "http://www.google.de"
ignoriere das [url = ...] [/url] das formatiert er da rein bkeomme das gerade net weg
naja die Frage ist wieviel Mögliche "Anfänge" du hast,.... darum wäre eine beschreibung evtl. nicht schlecht.... weil ich denke ums "vergleichen" kommst du nicht rum
oder du fügst halt ein eindeutiges "Zeichen" in die Textdatei ein, wäre z.b. auch ne Möglichkeit
Also um das vorweg zu nehmen, leider kann ich da nichts einfügen.
Die anfänge können entweder http:\\ oder Eben X:\Windows\...., also eben ein Beliebiger Pfad sein
Das verglichen werden muss hab ich an sich auch kein Problem mit
Also um das vorweg zu nehmen, leider kann ich da nichts einfügen.
Die anfänge können entweder http:\\ oder Eben X:\Windows\...., also eben ein Beliebiger Pfad sein
Das verglichen werden muss hab ich an sich auch kein Problem mit
also wie du das HTTP:\\ filterst hab ich ja oben beschrieben.... für das X:\ da X ja beliebig sein kann, würden mir reguläre Ausdrücke einfallen... aber ich glaub indexOf mag die nicht da müsstest du selber mal gucken wie du das am Besten umwandelst
ihr könnt mich gern verbessern, falls es eine bessere Möglichkeit gibt
public class LinkExtractor {
final static String input = "Mit [URL=http://download.oracle.com/javase/6/docs/api/java/lang/String.html#indexOf%28java.lang.String,%20int%29][code]indexOf(String str, int fromIndex)
static Vector<String> getURLs(String line) {
Vector<String> retVal = new Vector<String>();
int anfang = 0;
int ende = 1;
while (anfang>=0) {
anfang = input.indexOf(anfangsString, anfang);
ende = input.indexOf(endString, anfang+1);
if (anfang>0) {
anfang += anfangsString.length();
retVal.add(line.substring(anfang, ende));
anfang = ende + endString.length();
ende=anfang+1;
}
}
return retVal;
}
public static void main(String[] args) {
Vector<String> urls = getURLs(input);
for(String s : urls)
System.out.println(s);
}
[/code]