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 :
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!