J'ai une chaîne (qui est essentiellement un nom de fichier suivant une convention de dénomination) abc.def.ghi
Je voudrais extraire la sous-chaîne avant la première .
(c'est-à-dire un point)
Dans java doc api, je n'arrive pas à trouver une méthode dans String qui fait cela.
Est-ce que je manque quelque chose? Comment faire?
La réponse acceptée est correcte mais elle ne vous dit pas comment l'utiliser. C'est ainsi que vous utilisez conjointement les fonctions indexOf et substring.
la source
Vous pouvez simplement diviser la chaîne.
Notez que java.lang.String.split utilise la valeur d'expression régulière du délimiteur. En gros comme ça ...
Bien sûr, cela est divisé en plusieurs lignes pour la clairité. Cela pourrait être écrit comme
la source
Si votre projet utilise déjà commons-lang , StringUtils fournit une méthode intéressante à cet effet:
voir javadoc [2.6] [3.1]
la source
ou vous pouvez essayer quelque chose comme
"abc.def.ghi".substring(0,"abc.def.ghi".indexOf(c)-1);
la source
def.hij.klm
? Comment votre code fonctionnerait-il alors? (Votre code ne fonctionne que pour cet exemple - vous pourriez aussi bien écrire une fonction qui renvoie"abc"
- cela fonctionnerait tout aussi bien)Que diriez-vous d'utiliser regex?
Cela remplace tout du premier point à la fin par "" (c'est-à-dire qu'il l'efface, vous laissant avec ce que vous voulez)
Voici un test:
Production:
la source
Dans java.lang.String, vous obtenez des méthodes comme indexOf (): qui vous renvoie le premier index d'un char / string. et lstIndexOf: qui vous renvoie le dernier index de String / char
Depuis Java Doc:
Renvoie l'index dans cette chaîne de la première occurrence du caractère spécifié.
la source
Voici le code qui retourne une sous-chaîne de a
String
à l'un d'une liste de caractères donnée:la source
Cela pourrait aider:
la source