In einem String Zeichen suchen und alles was davor steht löschen

plop123

Grünschnabel
Hallo zusammen

Ich habe vor einen String so auseinander zu nehmen, dass ich alles darinstehende bis zu einem gewissem Zeichen löschen kann.

Code:
File test = new File("Path/To/A/Directory/Or/A/File.xml");
String file = test.toString();

Mein Ziel ist es das File aus dem Pfad zu lesen und daher möchte ich jeden "/" und das dahinterstehende löschen.

Da mein Programm weiter führt ist es schwierig dieses zu erläutern. Ich hoffe jmnd kann mir da weiterhelfen.

Gruss Plop123
 
Zuletzt bearbeitet:
Hi,

da du die Klasse File nutzt,
sieh dir mal die Funktionen an.

Du kannst via
Java:
File 	getAbsoluteFile()
          Returns the absolute form of this abstract pathname.
 String 	getAbsolutePath()
          Returns the absolute pathname string of this abstract pathname.
 File 	getCanonicalFile()
          Returns the canonical form of this abstract pathname.
 String 	getCanonicalPath()

dir einige Informationen ausgeben lassen.

http://docs.oracle.com/javase/1.4.2/docs/api/java/io/File.html

mfg
bo
 
Wenn es nur darum geht den Dateinamen herauszufinden, dann wird die Methode getName() vollkommen ausreichen.
 
also mein Ziel ist es aus einen Pfad das File als String darzustellen bspw:

path = /home/user/File.jpg

nun möchte ich nur "File.jpg" als String ausgeben.
getname(); hab ich probiert, strahlt mir jedoch den ganzen Pfad so wie er oben steht aus.
 
Moin,

dann übernehme doch einfach den Pfad in einen String, splitte diesen nach "/" und verwende dann den letzten Eintrag im entstehenden Stringarray !

Hier mal ein Ansatz dazu (ungetestet) :
Java:
String myString = "Path/To/A/Directory/Or/A/File.xml";
Pattern p = Pattern.compile ("//"); // sollte zum escapen reichen  ... bin gerade nicht sicher ;-)
String[] strData = p.split( myString, 0 );

// Ergebnis :
// strData[0] == "Path"
// strData[1] == "To"
// ...
// strData[6] == "File.xml"  // Voila :-)

Gruß
Klaus
 
also mein Ziel ist es aus einen Pfad das File als String darzustellen bspw:

path = /home/user/File.jpg

nun möchte ich nur "File.jpg" als String ausgeben.
getname(); hab ich probiert, strahlt mir jedoch den ganzen Pfad so wie er oben steht aus.
Dann hast du etwas falsch gemacht:
Code:
scala> import java.io.File
import java.io.File

scala> val f = new File("/home/user/File.jpg")
f: java.io.File = \home\user\File.jpg

scala> f.getName
res0: java.lang.String = File.jpg
Gruß
 
kann man das nicht auch ganz leicht machen? xd

Java:
String myString = "Path/To/A/Directory/Or/A/File.xml";
myString = myString.substring(myString.lastIndexOf("/")+1, myString.length());
System.out.println(myString);
 
kann man das nicht auch ganz leicht machen? xd

Java:
String myString = "Path/To/A/Directory/Or/A/File.xml";
myString = myString.substring(myString.lastIndexOf("/")+1, myString.length());
System.out.println(myString);
Das findest du leichter als eine vordefinierte Methode aufzurufen? :suspekt:

Gerade wenn man mit Pfaden arbeitet und diese evtl. auch noch vom Benutzer eingegeben werden können, empfiehlt es sich die File Klasse oder die neue java.nio.Path Klasse zu verwenden. Dann funktioniert das Programm auch auf unterschiedlichen Plattformen...

Gruß
 
Zurück