Maison >Java >javaDidacticiel >Comment les expressions régulières peuvent-elles extraire des nombres d'une chaîne et les stocker sous forme de tableau d'entiers ?

Comment les expressions régulières peuvent-elles extraire des nombres d'une chaîne et les stocker sous forme de tableau d'entiers ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-08 14:08:11725parcourir

How Can Regular Expressions Extract Numbers from a String and Store Them as an Integer Array?

Extraire des nombres à partir de chaînes à l'aide d'expressions régulières

Problème :

Étant donné une chaîne contenant les deux texte et nombres, comment pouvons-nous extraire ces nombres et les stocker dans un tableau de entiers ?

Solution avec des expressions régulières :

Les expressions régulières (regex) peuvent être utilisées comme une méthode concise et efficace pour faire correspondre et extraire des modèles spécifiques à partir de chaînes. Voici comment nous pouvons utiliser l'expression régulière pour résoudre ce problème :

import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.LinkedList;

String line = "There are more than -2 and less than 12 numbers here";

Pattern p = Pattern.compile("-?\d+");
Matcher m = p.matcher(line);

LinkedList<String> numbers = new LinkedList<>();
while (m.find()) {
  numbers.add(m.group());
}

// Convert the extracted strings to integers
int[] intArray = new int[numbers.size()];
for (int i = 0; i < numbers.size(); i++) {
  intArray[i] = Integer.parseInt(numbers.get(i));
}

System.out.println(intArray);

Dans cette solution :

  • Nous compilons le modèle d'expression régulière -?d , qui correspond aux nombres précédés d'un négatif facultatif signe (-).
  • Nous utilisons l'objet Matcher pour trouver toutes les occurrences de ce modèle dans le string.
  • Nous stockons les nombres correspondants dans une liste chaînée de chaînes.
  • Enfin, nous convertissons les chaînes extraites en entiers et les stockons dans un tableau d'entiers.

Cette approche fournit une solution propre et réutilisable pour extraire des nombres à partir de chaînes de longueur et de complexité arbitraires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn