Aus Text Zeile einen String herauslesen

Bonsai

Bekanntes Mitglied
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 -.-
 
Zuletzt bearbeitet von einem Moderator:
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 😀
 
Zuletzt bearbeitet:
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 😀

Das problem ist nur das es bei Pfad angaben nicht mehr funktioniert, wie zum Beispiel der Pfad zu einer Datei.

Naja Probiert an sich hab ich noch nix,da ich noch nicht einmal ansatzweiße eine Idee hatte wie ich an das Problem rangehen sollte. Sorry
 
Das problem ist nur das es bei Pfad angaben nicht mehr funktioniert, wie zum Beispiel der Pfad zu einer Datei.

Naja Probiert an sich hab ich noch nix,da ich noch nicht einmal ansatzweiße eine Idee hatte wie ich an das Problem rangehen sollte. Sorry

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 😀
 
Zuletzt bearbeitet:
Mit
Code:
indexOf(String str, int fromIndex)

und
Code:
substring(int beginIndex, int endIndex)

dürfte sich was basteln lassen.

Edit: Wow. Über eine Stunde kein Beitrag und dann innerhalb von 3 Minuten 3 Stück.

...tja nur kam bis jetzt immer noch kein Code von dir ????

huhu - was hast du bis jetzt denn versucht?

Kannst du schon zeilenweise Code einlesen?

Formulier doch mal aus ganz genau alles als Anfang gilt.

Mit so wischiwaschi Angaben kann man nichts programmieren geschweige denn dabei helfen.
 
Bis jetzt immer noch kein Code vom TO?
Wann kommt der erste? Was hast du schon versucht?

Kannst du schon zeilenweise Code einlesen?

Formulier doch mal aus ganz genau alles als Anfang gilt.

Mit so wischiwaschi Angaben kann man nichts programmieren geschweige denn dabei helfen.
 
und damit ich nicht total als Ketzer gelte:

Java:
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)
[/URL] und
Code:
substring(int beginIndex, int endIndex)
";
final static String anfangsString = "";

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]
 
Java:
public static void checkFileForString(String filePath) throws FileNotFoundException, IOException {

		String line = null;

		try {
			File file = new File(filePath);
			FileReader fileReader = new FileReader(file);
			BufferedReader bufferedReader = new BufferedReader(fileReader);

			while ((line = bufferedReader.readLine()) != null) {

					Pattern pattern = Pattern.compile("(http:\\\\|http:/|[A-Za-z]:\\\\|[A-Za-z]:/)+[a-zA-Z./\\\\0-9:]*");
					Matcher matcher = pattern.matcher(line);

					while (matcher.find()) {
						System.out.println("String found: (" + line.substring(matcher.start(), matcher.end()) + ")");
					}
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}



Ich hoffe ich konnte helfen 🙂
 
Zuletzt bearbeitet:

Zurück
Oben