91 votes

Extraire des chiffres d'une chaîne de caractères - StringUtils Java

J'ai une chaîne de caractères et je veux extraire la (seule) séquence de chiffres de cette chaîne.

Exemple : helloThisIsA1234Sample. Je veux le 1234

Il est évident que la séquence de chiffres n'apparaîtra qu'une seule fois dans la chaîne, mais pas à la même position.

(pour ceux qui le demanderont, j'ai un nom de serveur et j'ai besoin d'en extraire un numéro spécifique).

Je voudrais utiliser la classe StringUtils de Apache commomns.

Gracias.

184voto

Utilisez ce numéro de codeIl contiendra uniquement la sortie souhaitée.

   String str="sdfvsdf68fsdfsf8999fsdf09";
   String numberOnly= str.replaceAll("[^0-9]", "");

36voto

Michael Bavin Points 1045

J'aime toujours utiliser Guava String utils ou similaire pour ce genre de problèmes :

String theDigits = CharMatcher.inRange('0', '9').retainFrom("abc12 3def"); // 123

25voto

rnrneverdies Points 1220

Juste une ligne :

int value = Integer.parseInt(string.replaceAll("[^0-9]", ""));

12voto

Marimuthu Madasamy Points 5617

Vous pouvez également utiliser java.util.Scanner :

new Scanner(str).useDelimiter("[^\\d]+").nextInt()

Vous pouvez utiliser next() au lieu de nextInt() pour obtenir les chiffres sous forme de String . Notez que l'appel Integer.parseInt sur le résultat peut être plusieurs fois plus rapide que d'appeler nextInt() .

Vous pouvez vérifier la présence du numéro en utilisant hasNextInt() en el Scanner .

7voto

Utilisez une expression rationnelle telle que [^0-9] pour supprimer tous les chiffres qui ne sont pas des chiffres.

A partir de là, il suffit d'utiliser Integer.parseInt(String);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X