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:
B

ByeBye 154279

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
 

Akeshihiro

Erfahrenes Mitglied
Wenn es nur darum geht den Dateinamen herauszufinden, dann wird die Methode getName() vollkommen ausreichen.
 

plop123

Grünschnabel
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.
 

vfl_freak

Premium-User
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
 

deepthroat

Erfahrenes Mitglied
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ß
 

I2oxxi

Mitglied
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);
 

deepthroat

Erfahrenes Mitglied
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ß