Estou em duvida em relação aos metodos .find() e . matches() da classe Matcher.
Não entendi muito bem a diferença edles e qual escolher para usar neste exercicio.
Eu testei os dois, deixei um comentado e rodei o programa, depois comentei o outro e rodei novamente.
package referencia.de.codigo.validando;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ValidandoReferenciaDeCodigo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Insira o codigo: ");
String codigo = sc.nextLine();
Pattern pattern = Pattern.compile("^[A-Z]{3}-\\d{4}$");
Matcher matcher = pattern.matcher(codigo);
// boolean valida = matcher.find();
// if(!valida){
if(!matcher.matches()){
System.out.println("Código inválido.");
}else {
System.out.println("Código válido.");
}
sc.close();
}
}