Bien pues para ello hago uso de la clase Matcher de este modo.
Código:
public static void main(String[] args) throws IOException {
//Validacion con Afd.
Afd automata = new Afd("adn.jff");
System.out.println("Introduzca una o varias cadenas separadas"
+ " por coma para su validación: \n");
Scanner consola = new Scanner(System.in);
String linea = consola.nextLine();
String[] listaCadenas = linea.split(",");
System.out.println("********Validación con Afd.********\n");
for (String cadena : listaCadenas) {
System.out.println("La cadena (" + cadena + ") ¿Es válida? "
+ ValidacionADN.esValida(automata, cadena));
if (ValidacionADN.esValida(automata, cadena) == false) {
System.out.println("estado: " + automata.getEstadoActual()
+ ", símbolo: " + automata.getSimboloActual());
}
}
//Validación con Matcher.
System.out.println("********Validacion con Matcher********");
Pattern patEnzimas= Pattern.compile("[[GGCC]*|[GGTACC]*|[TTCGAA]*|[TGATCA]*]+"); // ESTA ES LA LÍNEA QUE TENGO MAL
for (String cadena: listaCadenas){
Matcher matEnzimas= patEnzimas.matcher(cadena);
System.out.println("¿Es válida la cadena ("+cadena+")?"+matEnzimas.matches());
}
}
Mi pregunta es ¿Qué patrón debo pasarle para que me devuelva true si la cadena de entrada es una composición de una o más cadenas descritas anteriormente?