English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java中具有示例的Matcher requireEnd()方法

Iljava.util.regex.MatcherLa classe rappresenta un motore che esegue vari operazioni di corrispondenza. Questa classe non ha costruttore, può essere utilizzatamatches()Il metodo della classe java.util.regex.Pattern crea/ottiene un oggetto di questa classe.

Se la corrispondenza è avvenuta, questo oggetto (Matcher) della classerequireEnd()Il metodo verifica l'opportunità di esistenza di un risultato di corrispondenza falso (se ci sono più input), se sì, questo metodo restituisce true, altrimenti restituisce false.

Ad esempio, se provi a utilizzare l'espressione regolare "you $" per corrispondere l'ultimo termine della stringa di input con te stesso e se la tua prima riga di input è "Ciao tu sei", potresti corrispondere, ma se accetti più frasi nuove righe l'ultimo termine della nuova riga potrebbe non essere la parola necessaria (cioè "tu"), rendendo il risultato della corrispondenza falso. In questo caso, ilrequiredEnd()Il metodo restituisce true.

Anche se provi a corrispondere un carattere specifico nell'input, dì # e se la tua prima riga di input è "Ciao#Come va?", avrai una corrispondenza, più input dati possono modificare il contenuto del corrispondente, ma non cambiare il risultato, questo è vero. In questo caso, ilrequiredEnd()Il metodo restituisce false.

Esempio 1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RequiredEndExample {
   public static void main( String args[] ) {
      String regex = "you$";
      //Leggi l'input dell'utente
      Scanner sc = new Scanner(System.in);
      System.out.println("Inserisci il testo di input: ");
      String input = sc.nextLine();
      //Istanziazione della classe Pattern
      Pattern pattern = Pattern.compile(regex);
      //Istanziazione della classe Matcher
      Matcher matcher = pattern.matcher(input);
      //Verifica se è avvenuta la corrispondenza
      if(matcher.find()) {
         System.out.println("Corrispondenza trovata");
      }
      boolean result = matcher.requireEnd();
      if(result) {
         System.out.println("Più input potrebbe rendere falso il risultato della corrispondenza");
      } else {
         System.out.println("Il risultato della corrispondenza sarà vero, nonostante ulteriori dati");
      }
   }
}

Risultato dell'output

Inserisci il testo di input:
Ciao, come ti trovi?
Corrispondenza trovata
Più input può rendere falso il risultato della corrispondenza

Esempio 2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RequiredEndExample {
   public static void main( String args[] ) {
      String regex = "[#]";
      //Leggi l'input dell'utente
      Scanner sc = new Scanner(System.in);
      System.out.println("Inserisci il testo di input: ");
      String input = sc.nextLine();
      //Istanziazione della classe Pattern
      Pattern pattern = Pattern.compile(regex);
      //Istanziazione della classe Matcher
      Matcher matcher = pattern.matcher(input);
      //Verifica se è avvenuta la corrispondenza
      if(matcher.find()) {
         System.out.println("Corrispondenza trovata");
      }
      boolean result = matcher.requireEnd();
      if(result) {
         System.out.println("Più input potrebbe rendere falso il risultato della corrispondenza");
      } else {
         System.out.println("Il risultato della corrispondenza sarà vero, nonostante ulteriori dati");
      }
   }
}

Risultato dell'output

Inserisci il testo di input:
Ciao# come stai
Corrispondenza trovata
Il risultato della corrispondenza sarà vero, nonostante ulteriori dati