Código Java:
Ver original
cadena=teclado.nextLine(); Pattern patron = Pattern.compile(".*[Pp]uert[a|o].*"); Matcher m = patron.matcher(cadena); if(m.find()){ patron=patron.compile(".*[p|P]uerto.*"); m=patron.matcher(cadena); if(m.find()){ patron=patron.compile(".*[p|P]uerta.*"); m =patron.matcher(cadena); if(m.find()){ } } }
el problema es que si recibe una cadena q tenga ambas palabras (puerto y puerta) NO me muestra el print de <puerto> y <puerta> sino el de la primera palabra que tenga la cadena... puerto o puerta, nuncam e muestra el otro y no entiendo cual es el problema :S
encima puse que me muestre si encuentra true o false cuando prueba con Puerta, me muestra true pero el if no se ejecuta(el de <puerto> y <puerta>)
edito:
lo cambie por esto y funciona
Código Java:
Ver original
cadena=teclado.nextLine(); Pattern patron = Pattern.compile(".*[Pp]uert[a|o].*"); Matcher m = patron.matcher(cadena); if(m.find()){ patron=Pattern.compile(".*[p|P]uerto.*"); m=patron.matcher(cadena); if(m.find()&&Pattern.compile(".*[pP]uerta.*").matcher(cadena).find()){ } } }
pero no deberia funcionar de la otra forma tambien?