Maison > Java > javaDidacticiel > Comment « Scanner.useDelimiter() » de Java peut-il être utilisé avec des expressions régulières pour diviser l'entrée ?

Comment « Scanner.useDelimiter() » de Java peut-il être utilisé avec des expressions régulières pour diviser l'entrée ?

Barbara Streisand
Libérer: 2024-11-26 00:08:11
original
197 Les gens l'ont consulté

How Can Java's `Scanner.useDelimiter()` Be Used with Regular Expressions to Split Input?

Comprendre Scanner.useDelimiter avec des expressions régulières

Dans l'API Scanner de Java, la méthode useDelimiter() vous permet de spécifier un délimiteur pour diviser le saisir du texte dans des jetons. Cependant, des délimiteurs autres que les espaces peuvent être utilisés, nécessitant la compréhension des modèles d'expressions régulières (regex).

Modèles Regex dans useDelimiter()

Pour utiliser un délimiteur avec useDelimiter(), vous devez fournir un modèle d'expression régulière. Ce modèle définit les caractères ou les séquences qui doivent séparer les jetons.

Par exemple, l'extrait de code ci-dessous utilise le délimiteur "|,|rn" pour diviser l'entrée en fonction de virgules (",") ou de nouvelles lignes. (rn):

sc = new Scanner(new File(dataFile));
sc.useDelimiter(",|\r\n");
Copier après la connexion

Cela signifie que le scanner traitera les virgules et les nouvelles lignes comme séparateurs, divisant l'entrée en tokens.

Exemples

Pour illustrer comment useDelimiter() fonctionne avec les modèles d'expression régulière, considérons l'exemple suivant :

String input = "1 fish 2 fish red fish blue fish";

// Use "\s*fish\s*" as the delimiter to split the input
Scanner s = new Scanner(input).useDelimiter("\s*fish\s*");

System.out.println(s.nextInt());   // prints: 1
System.out.println(s.nextInt());   // prints: 2
System.out.println(s.next());      // prints: red
System.out.println(s.next());      // prints: blue
Copier après la connexion

Ici, le délimiteur "sfishs" correspond à 0 ou plusieurs répétitions de caractères d'espacement ("s*") suivis du mot "poisson" et encore 0 ou plusieurs répétitions d'espaces. En conséquence, l'entrée est divisée en jetons en fonction du délimiteur et le scanner peut extraire les valeurs souhaitées.

Ressources supplémentaires

Pour plus d'informations sur useDelimiter( ) et les modèles d'expression régulière, reportez-vous aux ressources suivantes :

  • API du scanner : https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html
  • Tutoriel Regex : https://www.vogella.com/tutorials/JavaRegularExpressions/article. html
  • Référence rapide Regex : https://www.regular-expressions.info/quickref.html

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal