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
Barbara Streisandoriginal
2024-11-26 00:08:11270parcourir

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");

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

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!

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