Ich habe eine Zeichenfolge (die im Grunde ein Dateiname ist, der einer Namenskonvention folgt) abc.def.ghi
Ich möchte den Teilstring vor dem ersten .
(dh einem Punkt) extrahieren.
In Java Doc API kann ich anscheinend keine Methode in String finden, die das tut.
Vermisse ich etwas Wie es geht?
Die akzeptierte Antwort ist korrekt, sagt Ihnen jedoch nicht, wie Sie sie verwenden sollen. Auf diese Weise verwenden Sie die Funktionen indexOf und substring zusammen.
quelle
Sie können die Zeichenfolge einfach teilen .
Beachten Sie, dass java.lang.String.split den regulären Ausdruckswert des Trennzeichens verwendet. Grundsätzlich so ...
Natürlich ist dies aus Gründen der Helligkeit in mehrere Zeilen unterteilt. Es könnte geschrieben werden als
quelle
Wenn Ihr Projekt bereits commons-lang verwendet , bieten StringUtils eine gute Methode für diesen Zweck:
siehe javadoc [2.6] [3.1]
quelle
oder Sie können so etwas versuchen
"abc.def.ghi".substring(0,"abc.def.ghi".indexOf(c)-1);
quelle
def.hij.klm
? Wie würde Ihr Code dann funktionieren? (Ihr Code funktioniert nur für dieses eine Beispiel - Sie könnten genauso gut eine Funktion schreiben, die zurückgibt"abc"
- es würde genauso gut funktionieren )Wie wäre es mit Regex?
Dies ersetzt alles vom ersten Punkt bis zum Ende durch "" (dh es löscht es und lässt Sie mit dem, was Sie wollen)
Hier ist ein Test:
Ausgabe:
quelle
In java.lang.String erhalten Sie einige Methoden wie indexOf (): Gibt den ersten Index eines Zeichens / Strings zurück. und lstIndexOf: Gibt den letzten Index von String / char zurück
Aus Java Doc:
Gibt den Index innerhalb dieser Zeichenfolge des ersten Vorkommens des angegebenen Zeichens zurück.
quelle
Hier ist Code, der eine Teilzeichenfolge von a
String
bis zu einer bestimmten Zeichenliste zurückgibt :quelle
Dies könnte helfen:
quelle